问题描述:
在spring boot中使用restAPI风格调用接口,参数出现带点的数据,比如:
http://xxxx:8000/test/xxx.yyy.zzz
在java后端接收的时候,代码如下:
@RequestMapping(value = "/test/{xxx}", method = RequestMethod.GET)
public String xxx(@PathVariable(value = "xxx") String xxx) {
try {
} catch (Exception e) {
}
}
这样接收到的xxx参数的值为xxx.yyy,并没有获取到最后一个点后面的zzz,
原因:
因为springmvc把最后一个点当成后缀了,只可以获取后缀前的数据;
解决办法:
可以在requestMapping上加REST的正则匹配
@RequestMapping(value = "/test/{xxx:.+}", method = RequestMethod.GET)
public String xxx(@PathVariable(value = "xxx") String xxx) {
try {
} catch (Exception e) {
}
}
@RequestMapping(value = "/test/{xxx:.+}", method = RequestMethod.GET)
改成这样就可以接收了。