在SpringMVC中,使用@PathVariable把请求参数放到请求地址中时,如果参数存在小数点,则后台获取参数时,最后一个小数据和后面的内容会被Spring截取,是因为Spring默认根据请求文件的类型来决定视图,因此最后一个小数点以及后面的内容被当做文件后缀而丢弃。
解决方法:
1、改成post请求或者 @RequestParam ,
注:@PathVariable 获取的是请求路径中参数的值 @RequestParam 获取的是请求参数,一般是url问号后面的参数值
2、在前端请求url的最后加上一个"/",这样的话不管参数中有没有小数点,都会被当做路径,而不会被当成文件,如:
$.ajax({
url: "/device/product/ABC.01/",
async:false,
type: "GET",
success: function (data) {
//todo
},
error: function () {
//todo
}
});
3、在后端解析参数时使用Spring的正则表达式进行处理,如:
@RequestMapping("/device/product/{code:.+}")
public Object searchAll(@PathVariable String code){
//todo
}