激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 如何替換@PathVariable中的變量

如何替換@PathVariable中的變量

2022-03-07 00:32zzzgd816 Java教程

這篇文章主要介紹了如何替換@PathVariable中的變量,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

替換@PathVariable的變量

因為要對接口進行統計, 而項目中用到了@PathVariable的注解, 也就是uri中攜帶請求參數的方式. 導致一個接口統計出來很多個請求, 比如 /api/get/1, /api/get/2 …

在網上找到可以通過

?
1
Map<String, String> pathVariables = (Map) request.getAttribute(HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE);

拿到這個PathVariable參數. 于是初步代碼如下, 將/api/get/{id} 這個變量替換成常量{x}.

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import com.google.common.base.Joiner;
import javax.servlet.*;
  /**
   * 獲取 去除掉 PathVariable 后的uri
   * @param request
   * @return
   */
  private String getPureUri(HttpServletRequest request) {
    String url = request.getRequestURI();
    Map<String, String> pathVariables = (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") 綁定到操作方法的入參中。

?
1
2
3
4
5
//@GetMapping是一個組合注解,是@RequestMapping(method = RequestMethod.GET)的縮寫
@GetMapping("/getUserById/{id}")
public User getUser(@PathVariable("id") Long userId){
    return userService.selectUserById(userId);
}

不需要使用問號傳參,不需要寫key=valuel,直接寫value即可.

若方法參數名稱和需要綁定的uri template中變量名稱一致時,可以簡寫:

?
1
2
3
4
5
//@GetMapping是一個組合注解,是@RequestMapping(method = RequestMethod.GET)的縮寫。
@GetMapping("/getUserByName/{userName}")
public User getUserByName(@PathVariable String userName){
    return userService.selectUserByUserName(userName);
}

如何替換@PathVariable中的變量

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持服務器之家。

原文鏈接:https://zzzgd.blog.csdn.net/article/details/109990287

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 成人毛片视频在线观看 | 热99热| 中文字幕网址 | 在线播放免费人成毛片乱码 | 久久精品中文字幕一区二区三区 | 成人毛片在线 | 欧美成人午夜 | 一级做a爱片毛片免费 | 成人一级片毛片 | 色无极影院亚洲 | 露脸各种姿势啪啪的清纯美女 | 性少妇chinesevideo | bt 自拍 另类 综合 欧美 | 欧美三级日本三级少妇99 | av在线免费播放网站 | 欧美日韩免费在线观看视频 | 久久精品欧美视频 | 免费久久久 | 久久国产精品久久久久 | 国产一级午夜 | 成人性视频在线 | 亚洲一区动漫 | 成人精品一区二区 | 激情视频免费观看 | 国产电影精品久久 | 国产精品免费一区二区三区四区 | 色中色在线视频 | 日日噜噜夜夜爽 | 久久99精品久久久久久园产越南 | 免费观看黄色一级视频 | 欧美日韩a∨毛片一区 | 久草在线资源观看 | 亚洲三区精品 | 日韩一级电影在线观看 | 麻豆小视频在线观看 | 国产精品av久久久久久网址 | 美国黄色毛片女人性生活片 | 九九热免费精品视频 | 久久免费视频精品 | 91 在线 | 久久亚洲成人网 |