spring mvc中@PathVariable / 帶斜杠方式獲取
spring mvc @PathVariable / 帶斜杠方式獲取
遇上這個(gè)問題,百度google了一下,抄襲里面的內(nèi)容,可以實(shí)現(xiàn),在此備忘
實(shí)例
@RequestMapping(value = "/download/{value1}/**", method = RequestMethod.GET)
public void getValue(@PathVariable String value1, HttpServletRequest request) throws CommonException {
String value = extractPathFromPattern(request);
}
private String extractPathFromPattern(final HttpServletRequest request) {
String path = (String) request.getAttribute(HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE);
String bestMatchPattern = (String) request.getAttribute(HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE);
return new AntPathMatcher().extractPathWithinPattern(bestMatchPattern, path);
}
springMVC @PathVariable中間帶/問題處理
問題
請求地址/username/resourceUrl/methodName,其中username可能有也可能沒有,resourceUrl中會(huì)帶/,這個(gè)時(shí)候要使用@PathVariable,不能正確匹配controller
解決思路
把resourceUrl處理成一個(gè)不帶/的參數(shù)即可
1、約定好/替換方案,比如請求方把/全部替換為--
2、通過url編碼解碼處理 / 經(jīng)過編碼變成%2F 把resourceUrl編碼后,這個(gè)時(shí)候發(fā)現(xiàn)還是不能請求到正確的方法,因?yàn)榈絪pring時(shí)已經(jīng)自動(dòng)解碼了??梢园?2F再編一次碼變成%252F。%編碼后是25
/**
*/abc/xiaoming/h5/user.json/get
*/
@ResponseBody
@RequestMapping(method=RequestMethod.POST ,value="/abc/{username}/{resourceUrl}/{methodName}")
public String dubboMock(HttpServletResponse response,@PathVariable String username,@PathVariable String resourceUrl,@PathVariable String methodName){
}
3、放棄使用PathVariable,手動(dòng)去處理
/**
*/abc/xiaoming/h5/user.json/get
*/
@ResponseBody
@RequestMapping(method=RequestMethod.POST ,value="/abc/**")
public String dubboMock(HttpServletResponse response,HttpServletResponse request){
String url = request.getRequestURI();
//處理url
}
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java使用JNDI連接數(shù)據(jù)庫的實(shí)現(xiàn)方法
本文主要介紹了Java使用JNDI連接數(shù)據(jù)庫的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12
java保證對象在內(nèi)存中唯一性的實(shí)現(xiàn)方法
這篇文章主要介紹了java如何保證對象在內(nèi)存中的唯一性,如果創(chuàng)建多個(gè)對象的話,可能會(huì)引發(fā)出各種各樣的問題,這時(shí),就需要我們保證這個(gè)對象在內(nèi)存中的唯一性,需要的朋友可以參考下2019-06-06
詳解Spring Cloud Eureka多網(wǎng)卡配置總結(jié)
本篇文章主要介紹了詳解Spring Cloud Eureka多網(wǎng)卡配置總結(jié),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-04-04
jar命令修改jar包中的application.yml配置文件
本文主要介紹了jar命令修改jar包中的application.yml配置文件,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-08-08
Spring?security?oauth2以redis作為tokenstore及jackson序列化失敗問題
這篇文章主要介紹了Spring?security?oauth2以redis作為tokenstore及jackson序列化失敗問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教<BR>2024-04-04
解決springboot bean中大寫的字段返回變成小寫的問題
這篇文章主要介紹了解決springboot bean中大寫的字段返回變成小寫的問題,具有很好的參考價(jià)值希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01
Java實(shí)現(xiàn)二叉樹的深度優(yōu)先遍歷和廣度優(yōu)先遍歷算法示例
這篇文章主要介紹了Java實(shí)現(xiàn)二叉樹的深度優(yōu)先遍歷和廣度優(yōu)先遍歷算法,結(jié)合實(shí)例形式詳細(xì)分析了二叉樹的定義、深度優(yōu)先遍歷與廣度優(yōu)先遍歷算法原理與相關(guān)操作實(shí)現(xiàn)技巧,需要的朋友可以參考下2018-04-04
mybatisplus的坑?insert標(biāo)簽insert?into?select無參數(shù)問題的解決
這篇文章主要介紹了mybatisplus的坑?insert標(biāo)簽insert?into?select無參數(shù)問題的解決,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12

