一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

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

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

如何替換@PathVariable中的變量

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

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

替換@PathVariable的變量

因?yàn)橐獙涌谶M(jìn)行統(tǒng)計(jì), 而項(xiàng)目中用到了@PathVariable的注解, 也就是uri中攜帶請求參數(shù)的方式. 導(dǎo)致一個(gè)接口統(tǒng)計(jì)出來很多個(gè)請求, 比如 /api/get/1, /api/get/2 …

在網(wǎng)上找到可以通過

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

拿到這個(gè)PathVariable參數(shù). 于是初步代碼如下, 將/api/get/{id} 這個(gè)變量替換成常量{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 目標(biāo)挺進(jìn)發(fā)展過程中具有里程碑的意義。

通過 @PathVariable 可以將 URL 中占位符參數(shù)綁定到控制器處理方法的入?yún)⒅?URL 中的 {xxx} 占位符可以通過

@PathVariable("xxx") 綁定到操作方法的入?yún)⒅小?/p>

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

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

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

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

如何替換@PathVariable中的變量

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持服務(wù)器之家。

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 精品久久久久久无码人妻国产馆 | 色老板最新网站视频地址 | 亚欧综合 | 奇米影视99 | 太大了轻点阿受不了小说h 四色6677最新永久网站 | 黑人巨茎大战欧美白妇 | 欧美一卡二卡科技有限公司 | 91精品国产品国语在线不卡 | 日韩国产欧美成人一区二区影院 | 国产高清不卡码一区二区三区 | 亚洲成年男人的天堂网 | 国产另类视频一区二区三区 | 亚洲视频高清 | 免费亚洲成人 | 门房秦大爷最新章节阅读 | 日韩福利一区 | 天天爽视频 | 青青青久在线视频免费观看 | 亚洲另类中文字幕 | 日本视频免费在线 | 91大神第九部红酒气质女 | 91看片淫黄大片在看 | 2020精品极品国产色在线观看 | 2021日本三级理论影院 | 免费午夜剧场 | 9总探花新品牛仔背带裤 | 猥琐对着美女飞机喷到脸上 | 亚洲成年人免费网站 | 精品精品国产自在久久高清 | 日本不卡一区二区三区在线观看 | 成人动漫影院 | 欧美猛男同志video在线 | 9久re在线观看视频精品 | 小柔的性放荡羞辱日记动漫 | 国产成人久久精品区一区二区 | 风间由美一区二区播放合集 | 青青草原手机在线视频 | 和直男装修工在工地啪 | 日本连裤袜xxxxx在线视频 | 国产成人啪精品午夜在线观看 | 无人区免费一二三四乱码 |