@PathVariable獲取路徑中帶有 / 斜杠的解決方案
@PathVariable獲取路徑中帶“/”斜杠
問(wèn)題
訪問(wèn)路徑
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,而主要就是通過(guò)@PathVariable來(lái)處理請(qǐng)求參數(shù)和路徑的映射。
由于考慮到SEO的緣故,很多人喜歡把新聞的名稱作為路徑中的一部分去處理,這時(shí)候中文的名稱就會(huì)遇到問(wèn)題,沒(méi)辦法映射,這個(gè)是因?yàn)榫幋a問(wèn)題,只要到 TOMCAT/conf下找到server.xml,添加URIEncoding=”UTF-8”進(jìn)行URL編碼設(shè)置就可以解決中文問(wèn)題。
另外經(jīng)常遇到路徑中有點(diǎn)”.”,而點(diǎn)是特殊字符,比如.html, .do等等,所以Spring MVC默認(rèn)是把點(diǎn)后面的信息當(dāng)作文件后綴,這時(shí)候我們就要修改這個(gè)默認(rèn)值。
另外,這時(shí)候如果只設(shè)置這個(gè),請(qǐng)求可以傳遞到對(duì)于的controller,但傳過(guò)去的數(shù)據(jù)會(huì)有問(wèn)題,只會(huì)傳最后一個(gè)點(diǎn)前面的數(shù)據(jù),除非你在最后加上“/”,比如/news/測(cè)試.點(diǎn)/ 這樣就會(huì)把“測(cè)試.點(diǎn)”當(dāng)作整體,不然只會(huì)得到“測(cè)試”。這時(shí)候我們可以這樣設(shè)置@RequestMapping(“/news/{title:.*}”)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
基于Java代碼實(shí)現(xiàn)判斷春節(jié)、端午節(jié)、中秋節(jié)等法定節(jié)假日的方法
這篇文章主要介紹了基于Java代碼實(shí)現(xiàn)判斷春節(jié)、端午節(jié)、中秋節(jié)等法定節(jié)假日的方法 的相關(guān)資料,需要的朋友可以參考下2016-01-01SpringBoot實(shí)現(xiàn)定時(shí)任務(wù)和異步調(diào)用
這篇文章主要為大家詳細(xì)介紹了SpringBoot實(shí)現(xiàn)定時(shí)任務(wù)和異步調(diào)用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-04-04實(shí)例講解Java編程中數(shù)組反射的使用方法
這篇文章主要介紹了Java編程中數(shù)組反射的使用方法,通過(guò)編寫數(shù)組反射工具類可以重用許多基礎(chǔ)代碼,減少對(duì)類型的判斷過(guò)程,需要的朋友可以參考下2016-04-04Java編程實(shí)現(xiàn)服務(wù)器端支持?jǐn)帱c(diǎn)續(xù)傳的方法(可支持快車、迅雷)
這篇文章主要介紹了Java編程實(shí)現(xiàn)服務(wù)器端支持?jǐn)帱c(diǎn)續(xù)傳的方法,涉及Java文件傳輸?shù)南嚓P(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-11-11解決@Value注解不能注入static修飾的屬性問(wèn)題
這篇文章主要介紹了解決@Value注解不能注入static修飾的屬性問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07Intellij IDEA 閱讀源碼的 4 個(gè)絕技(必看)
今天小編給大家分享Intellij IDEA 閱讀源碼的 4 個(gè)絕技,熟練的運(yùn)用 IDEA 中各個(gè)小技巧,讓閱讀跟蹤源碼變得更輕松,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2020-04-04