@PathVariable獲取路徑中帶有 / 斜杠的解決方案
@PathVariable獲取路徑中帶“/”斜杠
問題
訪問路徑
http://192.168.10.243:1018/hpt/v2/photo/link/2021/7/headimage/super18909261952.jpg,需要獲取/link/2021/7/headimage/super18909261952.jpg值
解決方案
@RequestMapping(value = “/v2/photo/{photoName}/**”, produces = “/;charset=utf-8”, consumes = “/;charset=utf-8”)
public void getImageFromNetByUrl(@PathVariable String photoName, HttpServletRequest request, HttpServletResponse response) throws Exception {
final String pathq =
request.getAttribute(HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE).toString();
final String bestMatchingPattern =
request.getAttribute(HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE).toString();
String arguments = new AntPathMatcher().extractPathWithinPattern(bestMatchingPattern,pathq);
String moduleName;
if(null!= arguments&&!arguments.isEmpty()){
moduleName = photoName +'/'+ arguments;
} else {
moduleName = photoName;
}
System.out.println("moduleName"+moduleName);
}
moduleName就是需要的值;
@PathVariable 包含.等特殊字符異常
spring MVC從3.0開始支持REST,而主要就是通過@PathVariable來處理請求參數(shù)和路徑的映射。
由于考慮到SEO的緣故,很多人喜歡把新聞的名稱作為路徑中的一部分去處理,這時候中文的名稱就會遇到問題,沒辦法映射,這個是因為編碼問題,只要到 TOMCAT/conf下找到server.xml,添加URIEncoding=”UTF-8”進行URL編碼設置就可以解決中文問題。
另外經(jīng)常遇到路徑中有點”.”,而點是特殊字符,比如.html, .do等等,所以Spring MVC默認是把點后面的信息當作文件后綴,這時候我們就要修改這個默認值。
另外,這時候如果只設置這個,請求可以傳遞到對于的controller,但傳過去的數(shù)據(jù)會有問題,只會傳最后一個點前面的數(shù)據(jù),除非你在最后加上“/”,比如/news/測試.點/ 這樣就會把“測試.點”當作整體,不然只會得到“測試”。這時候我們可以這樣設置@RequestMapping(“/news/{title:.*}”)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
springboot項目配置logback-spring.xml實現(xiàn)按日期歸檔日志的方法
本文主要介紹了springboot項目配置logback-spring.xml實現(xiàn)按日期歸檔日志的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2024-08-08
Spring Boot 3.x 全新的熱部署配置方式詳解(IntelliJ ID
這篇文章主要介紹了Spring Boot 3.x 全新的熱部署配置方式(IntelliJ IDEA 2023.1),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-07-07
什么情況下會出現(xiàn)java.io.IOException?:?Broken?pipe這個錯誤以及解決辦法
這篇文章主要介紹了什么情況下會出現(xiàn)java.io.IOException?:?Broken?pipe這個錯誤以及解決辦法的相關資料,這個錯誤表示通信另一端已關閉連接,常發(fā)生在客戶端關閉連接、網(wǎng)絡超時或資源不足等情況,文中將解決辦法介紹的非常詳細,需要的朋友可以參考下2024-10-10
Netty分布式高性能工具類recycler的使用及創(chuàng)建
這篇文章主要為大家介紹了Netty分布式高性能工具類recycler的使用和創(chuàng)建,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步2022-03-03

