欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

@PathVariable獲取路徑中帶有 / 斜杠的解決方案

 更新時間:2021年10月26日 09:13:16   作者:我想你是海lq  
這篇文章主要介紹了@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的緣故,很多人喜歡把新聞的名稱作為路徑中的一部分去處理,這時候中文的名稱就會遇到問題,沒辦法映射,這個是因?yàn)榫幋a問題,只要到 TOMCAT/conf下找到server.xml,添加URIEncoding=”UTF-8”進(jìn)行URL編碼設(shè)置就可以解決中文問題。

另外經(jīng)常遇到路徑中有點(diǎn)”.”,而點(diǎn)是特殊字符,比如.html, .do等等,所以Spring MVC默認(rèn)是把點(diǎn)后面的信息當(dāng)作文件后綴,這時候我們就要修改這個默認(rèn)值。

另外,這時候如果只設(shè)置這個,請求可以傳遞到對于的controller,但傳過去的數(shù)據(jù)會有問題,只會傳最后一個點(diǎn)前面的數(shù)據(jù),除非你在最后加上“/”,比如/news/測試.點(diǎn)/ 這樣就會把“測試.點(diǎn)”當(dāng)作整體,不然只會得到“測試”。這時候我們可以這樣設(shè)置@RequestMapping(“/news/{title:.*}”)

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論