Spring MVC @PathVariable 特殊字符


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){ }

終於可以再一次愉悅地進行玩耍了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM