激情久久久_欧美视频区_成人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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日本一区二区不卡高清 | 亚洲午夜天堂吃瓜在线 | 国产日韩一区二区三区在线观看 | 久久久久一区 | 亚洲第五色综合网 | 亚洲综合色视频在线观看 | 久久艹艹艹 | 免费久久久久 | 性少妇videosexfreexx入片 | 一区二区高清视频在线观看 | 欧美va亚洲| 精国品产一区二区三区有限公司 | 久久久久久久一区二区三区 | 久草在线视频新 | 羞羞视频免费网站日本动漫 | 成人午夜在线免费视频 | 日本在线不卡一区二区 | 午夜视频啊啊啊 | 91麻豆精品国产91久久久更新资源速度超快 | 久久人人av | 538任你躁在线精品视频网站 | 在线成人免费观看视频 | 99久久精约久久久久久清纯 | 久色成人网 | 亚洲最新色 | 国产69精品久久久久99尤 | 国产九色在线观看 | 亚洲综合无码一区二区 | 成人做爰s片免费看网站 | 国产亚洲精品久久久久婷婷瑜伽 | 青青草最新网址 | hd日本xxxx| 国产精品久久久久久久久久三级 | 国产高清自拍一区 | 中文字幕国产亚洲 | 一级片在线观看 | 欧美国产永久免费看片 | 色婷婷综合久久久中字幕精品久久 | 中文字幕一区二区三区四区 | 精品国产一区二 | 中国3xxxx|