Contoller层问题及解决方案——从URL路径中获取到参数值(提供测试demo)


作者:空白

1. 从URL路径中取值,作用于函数参数

从服务路径Url中获取值,示例:http://localhost:8080/jdk/route/url/MP_verify_mVNLTSwlCYsWLaKb.txt ,获取这个url的最后一段文件名字符串MP_verify_mVNLTSwlCYsWLaKb.txt。

项目根目录是/jdk

如下代码片段:

@Controller
@RequestMapping("/route")
public class SampleOneController {
	
	@ResponseBody
	@RequestMapping("/url/{param}")
	public String getFile(@PathVariable String param) {
		
		return param;
	}
}

application.properties配置内容,配置的根目录是 /jdk

################################################################
# springboot 2.0变革后的配置区别
#1、springboot 2.0之前,配置为 server.context-path
#$2、springboot 2.0之后,配置为 server.servlet.context-path
################################################################
server.context-path=/jdk
#server.servlet.context-path=/jdk
################################################################

springboot2.0之前版本获取url路径中的参数不完整
springboot为2.0之前版本,postman测试如下: alt

截取的url参数值少了.txt内容。因此,在springboot2.0 版本之前只能获取MP_verify_mVNLTSwlCYsWLaKb字符串,后面的".txt"无法获取。

springboot2.0之后版本不用特殊处理就能从url路径中获取完整的参数值
postman测试结果: alt

截取的url参数值正确,获取到了完整的参数。

那这两个版本 不一样的结果,实际开发过程中如果springboot2.0之前版本是怎么办?
springboot两个版本如下:

  	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.4.0.RELEASE</version>
	</parent>
       <parent>
	       <groupId>org.springframework.boot</groupId>
	       <artifactId>spring-boot-starter-parent</artifactId>
	       <version>2.1.0.RELEASE</version>
	<relativePath/> 
  </parent>

springboot2.0之前的版本要想从路径url中获取完整值,需要对参数做特殊处理 springboot1.4.0.RELEASE版本下,需要借助正则表达式才能完整获取截取的url参数值。如下第二个controller方法,该方法就能获取url参数的.txt内容了:

        @ResponseBody
        @RequestMapping("/url/{param}")
        public String getUrlParam(@PathVariable String param) {
		
		return param;
        }
	
	@ResponseBody
	@RequestMapping("/urlRegx/{param:[_a-zA-Z0-9\\.]+}")
	public String getUrlParamRegx(@PathVariable String param) {
		
		return param;
	}

postman测试结果如下 alt

通过正则表达式我们正确获取了 url中的完整参数值。

Github实例点击领取

扫码或搜索:前沿科技
发送 290992
即可立即永久解锁本站全部文章