1.问题描述
Url:
http://host_ip/consumer/appVersion/phone/android/download/{version}
Controller:
@RequestMapping(value="android/download/{version}",method=RequestMethod.GET)
public void download(HttpSession session,HttpServletResponse response,@PathVariable("version")String version){
}
SpringMVC项目中通过上面的Url进行Get请求,当version有多个小数点的时候,如version为1.0.1008。后台通过@PathVariable来获取version等于1.0,会丢失部分数据。
2.解决方案
(1) 在version段后增加一个静态的字符段,这个段没有任何意义,可以为任意字符。
http://host_ip/consumer/appVersion/phone/android/download/{version}/static_str
(2) 在@RequestMapping的value中使用SpEL来表示,value中的{version}换成{version:.+}
@RequestMapping(value="android/download/{version:.+}",method=RequestMethod.GET)
public void download(HttpSession session,HttpServletResponse response,@PathVariable("version")String version){
}