教你如何替換@PathVariable中的變數
替換@PathVariable的變數
因為要對介面進行統計, 而專案中用到了@PathVariable的註解, 也就是uri中攜帶請求引數的方式. 導致一個介面統計出來很多個請求, 比如 /api/get/1, /api/get/2 …
在網上找到可以透過
MappathVariables = (Map) request.getAttribute(HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE);
拿到這個PathVariable引數. 於是初步程式碼如下, 將/api/get/{id} 這個變數替換成常量{x}.
import com.google.common.base.Joiner; import javax.servlet.*; /** * 獲取 去除掉 PathVariable 後的uri * @param request * @return */ private String getPureUri(HttpServletRequest request) { String url = request.getRequestURI(); MappathVariables = (Map) request.getAttribute(HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE); if (pathVariables != null && !pathVariables.isEmpty()){ String[] split = url.split("/"); for (String pathVal : pathVariables.values()) { for (int i = split.length - 1; i >= 0; i--) { if (split[i].equals(pathVal)){ //替換成{x},也可以直接替換成""去掉 split[i] = "{x}"; break; } } } url = Joiner.on("/").join(split); } return url; }
@pathvariable註解的使用
帶佔位符的 URL 是 Spring3.0 新增的功能,該功能在SpringMVC 向 REST 目標挺進發展過程中具有里程碑的意義。透過 @PathVariable 可以將 URL 中佔位符引數繫結到控制器處理方法的入參中:URL 中的 {xxx} 佔位符可以透過
@PathVariable("xxx") 繫結到操作方法的入參中。
//@GetMapping是一個組合註解,是@RequestMapping(method = RequestMethod.GET)的縮寫 @GetMapping("/getUserById/{id}") public User getUser(@PathVariable("id") Long userId){ return userService.selectUserById(userId); }
不需要使用問號傳參,不需要寫key=valuel,直接寫value即可.
若方法引數名稱和需要繫結的uri template中變數名稱一致時,可以簡寫:
//@GetMapping是一個組合註解,是@RequestMapping(method = RequestMethod.GET)的縮寫。 @GetMapping("/getUserByName/{userName}") public User getUserByName(@PathVariable String userName){ return userService.selectUserByUserName(userName); }
以上為個人經驗,希望能給大家一個參考。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69901823/viewspace-2841537/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle中的替換變數,&變數名,&&變數名說明Oracle變數
- ant如何替換JAVA程式碼中的String變數中的值?Java變數
- 教你如何用 openresty 完美替換 nginxRESTNginx
- sed處理變數替換變數
- EOF 如何防止多行寫入檔案變數替換變數
- BW Query替換路徑變數的使用變數
- Shell轉義字元與變數替換字元變數
- 使用變數替換批量部署GoldenGate變數Go
- bash 引數替換中的模式匹配模式
- 用javascript替換URL中的引數值JavaScript
- Linux Shell程式設計(6)——變數替換Linux程式設計變數
- javascript如何替換字串中的指定內容JavaScript字串
- 如何用xml替換掉structs中的tagXMLStruct
- 如何在word中進行查詢與替換 word文件中的替換與查詢功能
- SpringMVC中的@PathVariableSpringMVC
- Vi中的替換字串字串
- VI中的批量替換
- Stata-將變數名稱替換成標籤變數
- C#用正規表示式高效替換變數C#變數
- 替換空格 將一個字串中的空格替換成“ ”字串
- Shell 中的命令替換及引數擴充套件套件
- 如何優雅的替換掉程式碼中的ifelse
- vue-router如何實時地址不變,動態替換路由引數(位址列引數)Vue路由
- **PHP中替換換行符PHP
- Java 替換PDF中的字型Java
- Java替換PDF中的字型Java
- C++ 中的替換空格C++
- vi 替換命令引數
- 【構建】start.sh指令碼中變數被maven profile構建過程替換指令碼變數Maven
- Lumen 替換 world 裡面變數並匯出 PDF 圖片變數
- Lumen 替換 Word 裡面變數並匯出 PDF 圖片變數
- python如何將字串中的所有"you"替換成"we"Python字串
- js面試題-找出字串中的數字,並替換為*JS面試題字串
- Swift 中單例模式的替換Swift單例模式
- 替換專案中的包名
- 將url中的指定引數替換的javascript程式碼例項JavaScript
- js字串中替換指定的的字元JS字串字元
- 如何在OS X中建立郵箱地址的替換程式碼