PathVariable有句號或小數點時,取值不全
阿新 • • 發佈:2019-01-05
1、問題
SpringMVC專案中通過下面的URL進行GET請求。當version有多個小數點的時候。如version為1.0.1008。後臺通過@PathVariable來獲取version等於1.0。會丟失部分資料。
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){
}
2、解決方案
在version段後增加一個靜態的字元段,這個段沒有任何意義,可以為任意字元。
URL:
http://host_ip/consumer/appVersion/phone/android/download/{version}/static_str
問題雖然解決了,但畢竟URL後多了個小尾巴,心情不愉悅。
再次谷哥。
參考:
http://stackoverflow.com/questions/3526523/spring-mvc-pathvariable-getting-truncated
URL不加小尾巴。
在@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){
}
終於可以再一次愉悅地進行玩耍了。
@PathVariable出現點號"."時導致路徑引數截斷獲取不全的解決辦法
SpringMVC專案中通過下面的URL進行GET請求。當version有多個小數點的時候。如version為1.0.1008。後臺通過@PathVariable來獲取version等於1.0。會丟失部分資料。
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){
}
2、解決方案
在version段後增加一個靜態的字元段,這個段沒有任何意義,可以為任意字元。
URL:
http://host_ip/consumer/appVersion/phone/android/download/{version}/static_str
問題雖然解決了,但畢竟URL後多了個小尾巴,心情不愉悅。
再次谷哥。
參考:
http://stackoverflow.com/questions/3526523/spring-mvc-pathvariable-getting-truncated
URL不加小尾巴。
在@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){
}
終於可以再一次愉悅地進行玩耍了。
@PathVariable出現點號"."時導致路徑引數截斷獲取不全的解決辦法