国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

別不信@PathVariable你真不會用

開發(fā) 前端
從Spring的某個(gè)版本開始這個(gè)后綴已經(jīng)被聲明過時(shí)不建議再使用了,配置文件中對應(yīng)的參數(shù)都刪除了,所以目前你只能通過自定義WebMvcConfigurer方式開啟后綴匹配。

1. 簡介

@PathVariable是Spring MVC中的一個(gè)非常重要的注解,作用在于將URL中的模板變量(即路徑變量)綁定到控制器方法的參數(shù)上。這一功能特別適用于處理RESTful風(fēng)格的請求,使得開發(fā)者能夠直接從URL中提取參數(shù)值,并將其傳遞給方法進(jìn)行處理。通過使用@PathVariable注解,可以設(shè)計(jì)出更加靈活和動態(tài)的URL映射,同時(shí)簡化參數(shù)傳遞的過程,提高代碼的可讀性和可維護(hù)性。

接下來,我將深入解析@PathVariable注解的多種使用方式,展示其在實(shí)際開發(fā)中的靈活性和強(qiáng)大功能。看看你都掌握了幾種應(yīng)用技巧。

2. 實(shí)戰(zhàn)案例

2.1 基本使用

為使映射正確工作,捕獲 URI 變量 {id} 的名稱必須與 @PathVariable 成員參數(shù) String id 相同。

@GetMapping("/{id}")
public Object id(@PathVariable Long id) {
  return id ;
}

圖片圖片

如果將參數(shù)名修改如下:

@PathVariable Long key

這將導(dǎo)致錯(cuò)誤

MissingPathVariableException: Required URI template 
  variable 'key' for method parameter type Long is not present]

所以,在這種情況下你參數(shù)的名稱要與模板中的一樣。

2.2 不同參數(shù)名

我們可以通過將參數(shù)傳遞給 @PathVariable 注解,顯式訪問捕獲 URI 變量。

@GetMapping("/{id}")
public Object id(@PathVariable("id") Long key) {
  return key ;
}

通過指明路徑參數(shù)名,這樣就不會報(bào)錯(cuò)了。

2.3 類級別的路徑變量

下面的示例展示了如何使用 @PathVariable 在類和方法級別訪問URI 變量。

@RestController
@RequestMapping("/pv/{type}")
public class PathVariableController {


  @GetMapping("/{id}")
  public Object id(@PathVariable Integer type, @PathVariable("id") Long key) {
    return type + "@" +key ;
  }
}

這里的路徑變量type與參數(shù)名一致所以不用指定名稱。

2.4 多個(gè)URI變量

你也可以定義多個(gè) @PathVariable 注解來訪問捕獲的 URI 變量。

@GetMapping("/{cate}/{id}")
public Object category(@PathVariable String cate, @PathVariable Long id) {
  return cate + "@" + id ;
}

只要你想,只要不超過GET請求大小限制,你可以設(shè)置N多的路徑參數(shù)。

2.5 Map接收路徑變量

@PathVariable注解還支持Map類型,如下示例:

@GetMapping("/api/{tag}/query/{name}")
public String getByTagAndName(@PathVariable Map<String, String> paths) {
  String tag = paths.get("tag");
  String name = paths.get("name");
  return tag + "@" + name ;
}

圖片圖片

2.6 正則路徑變量

@GetMapping("/vk/api/{name:[a-z]+}")
public String getJarFile(@PathVariable String name) {
  return name ;
}

該路徑將只會匹配最后的name為a~z組合的字符。

2.7 可選的路徑變量

默認(rèn)情況下@PathVariable路徑變量是必須,否則服務(wù)端將MethodArgumentTypeMismatchException異常。我們除了可以通過設(shè)置PathVariable注解的required屬性為false外,還可以通過Optional類型接收值,如下示例:

@GetMapping({"/users/{id}", "/users/"})
public Object byId(@PathVariable Optional<Long> id) {
  return id.orElseGet(() -> -1L) ;
}

匹配兩個(gè)路徑,沒有id則返回-1。

2.8 路徑后綴

關(guān)于路徑后綴匹配,當(dāng)你在應(yīng)用中開啟了后綴匹配時(shí),如果路徑參數(shù)中有后綴那么得到的結(jié)果將不會是你期望的,如下示例:

@GetMapping("/ext/api/{file}")
public Object fileExt(@PathVariable String file) {
  return new R(file) ;
}

請求結(jié)果:

圖片圖片

最終得到的值沒有后綴,對于這種情況,你需要使用正則的方式處理,如下:

@GetMapping("/ext/api/{file:.+}")
public Object fileExt(@PathVariable String file)

通過這種方式后,你將會得到完整的后綴信息。

注:從Spring的某個(gè)版本開始這個(gè)后綴已經(jīng)被聲明過時(shí)不建議再使用了,配置文件中對應(yīng)的參數(shù)都刪除了,所以目前你只能通過自定義WebMvcConfigurer方式開啟后綴匹配。

2.9 在非Controller中取得路徑變量

通常請求的路徑變量是在Controller層被捕獲并處理的。如果你希望在Service層或其他非Controller組件中獲取這些路徑變量,而不是通過參數(shù)傳遞的方式,你則可以通過如下的方式。

private HttpServletRequest request ;
public void uriVar() {
  Map<String, String> vars = (Map<String, String>)request
    .getAttribute(HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE) ;
}

這將獲取所有的路徑變量數(shù)據(jù)。

責(zé)任編輯:武曉燕 來源: Spring全家桶實(shí)戰(zhàn)案例源碼
相關(guān)推薦

2021-03-16 15:12:57

CompletableFuture機(jī)制java

2020-09-01 14:17:03

WindowsDefender微軟

2020-05-14 08:59:28

API網(wǎng)關(guān)性能

2022-02-22 08:25:51

typeScript泛型概念泛型使用

2020-09-27 06:50:56

Java互聯(lián)網(wǎng)注解

2019-09-03 09:30:46

ss 命令SocketLinux

2024-09-09 08:36:36

Java操作遠(yuǎn)程服務(wù)器

2020-12-18 09:45:33

DockerLinux命令

2025-07-04 02:00:00

2020-08-26 14:40:38

explainMySQL數(shù)據(jù)庫

2020-11-09 09:03:35

高并發(fā)多線程ThreadLocal

2020-03-10 08:33:04

HTTP演變協(xié)議

2012-05-02 15:38:49

金山快盤網(wǎng)盤

2025-08-18 02:15:00

2025-11-28 09:01:22

2020-12-07 09:15:00

JavaScript數(shù)組 reduce

2018-09-13 10:40:40

Linux命令find

2020-10-21 10:02:16

架構(gòu)運(yùn)維技術(shù)

2022-08-12 15:58:34

Docker

2019-11-28 16:48:00

華為Mate X
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

欧美洲成人男女午夜视频| www.4438全国最大| 亚洲最好看的视频| 777奇米成人网| 97香蕉久久| 亚洲欧美日本在线| 激情五月俺来也| 不卡的看片网站| 中文字幕欧美人与畜| 老司机亚洲精品| 国产精品对白刺激久久久| 精品国产99| 51色欧美片视频在线观看| 精品国产亚洲一区二区三区大结局 | 精品freesex老太交| 色午夜这里只有精品| 亚洲欧美韩国| 亚洲日本欧美中文幕| 操喷在线视频| 日韩国产精品一区| 神马久久资源| 久久99精品久久久久久| 久久久久久亚洲精品| 在线看片福利| 亚洲欧洲日产国码av系列天堂| 永久av在线| 91精品国产综合久久国产大片| www.亚洲资源| 日韩欧美区一区二| 欧美裸体视频| 日韩在线视频观看正片免费网站| 日韩av黄色| 欧美一级黑人aaaaaaa做受| 精品一区毛片| 成人在线视频网址| 美女网站色91| 蜜臀av无码一区二区三区| 久久精品亚洲乱码伦伦中文| 亚洲欧美视频二区| 亚洲高清免费观看| 在线日本中文字幕| 亚洲精品视频在线观看视频| 国产精品伦一区二区| 欧美黑人xxxx| 99久久国产综合精品成人影院| 国产精品亚洲综合| 国产成人鲁色资源国产91色综| 久久久精品麻豆| 五月婷婷久久丁香| 国产盗摄在线视频网站| 欧美成人全部免费| 不卡日本视频| 夜夜爽99久久国产综合精品女不卡| 99久久久久久| 亚洲美女电影在线| 亚洲欧美国产精品| 亚洲精品一级二级三级| 国产区一区二区三区| 成人精品电影在线观看| 最新中文字幕av专区| 欧美成人bangbros| 粉嫩久久久久久久极品| 精品国产一区二区三区免费 | 97精品国产97久久久久久春色| 成人激情电影在线| 西游记1978| 亚洲欧美欧美一区二区三区| a√资源在线| 社区色欧美激情 | 第一sis亚洲原创| 视频一区二区视频| 1024成人网| 成人在线黄色电影| 国产不卡一区二区在线播放| 日本欧美在线观看| 成人动漫av| 日韩小视频在线观看| 国产一区二区三区四区三区四| 亚洲熟妇无码另类久久久| 色婷婷国产精品| 精品一区二区三区中文字幕在线| 久久久久久久有限公司| 国产精品久久久久久久久果冻传媒| 欧美巨大xxxx做受沙滩| 国产精品偷伦一区二区| 99re免费视频精品全部| 在线观看美女网站大全免费| 9.1国产丝袜在线观看| 另类欧美日韩国产在线| 色佬视频在线观看| 国产一区二区欧美日韩| 亚洲欧美日韩国产| 玖玖在线免费视频| 色综合久久悠悠| 国内精品自线一区二区三区视频| 天堂中文在线资| 久久免费观看视频| 成人午夜私人影院| 激情图片在线观看高清国产| 国产日韩欧美在线| 亚洲视频一区二区在线| 欧美成人免费全部网站| 日本三级中国三级99人妇网站| 亚洲国产精品精华液网站| 日韩精品一区国产| 粉嫩av一区二区三区天美传媒| 欧美日韩国产精选| 日韩免费一区| wwwwww99| 欧美乱妇高清无乱码| 国产精品资源站在线| 欧美精品videosex| 99久久精品免费看国产四区| 亚洲老妇xxxxxx| 538任你躁精品视频网免费| 国产精品无码免费专区午夜| 日韩久久免费av| 噜噜噜躁狠狠躁狠狠精品视频| 日本亚洲欧美| 成人免费大片黄在线播放| 亚洲免费观看在线观看| 香蕉大人久久国产成人av| 男人添女人下面高潮视频| 亚洲天堂视频在线观看| 亚洲免费中文| 天堂av最新在线| 午夜精品福利一区二区| 欧美一二区视频| 丝袜a∨在线一区二区三区不卡| 免费黄网站在线| 精品一区久久久| 日韩一级精品视频在线观看| 久久一区二区三区超碰国产精品| 麻豆影视国产在线观看| 精品久久精品久久| 日韩欧美一区中文| 首页国产欧美久久| 僵尸再翻生在线观看| 亚州欧美一区三区三区在线 | 美女在线观看视频一区二区| 麻豆网站在线免费观看| 精品久久久久久乱码天堂| 在线观看国产精品网站| 好看不卡的中文字幕| 日本视频不卡| 日产国产精品精品a∨| 精品免费日韩av| 国产综合久久久久久鬼色| 国产精品扒开腿做爽爽爽视频软件| 精品一二三四五区| 欧美激情小视频| 亚洲丝袜美腿综合| 欧美综合在线视频观看| 日韩av高清在线| 国产精品一区二区免费| 欧美成人video| 成人免费毛片aaaaa**| 日韩在线视频一区二区三区| 嫩草影院永久入口| 国外成人在线视频网站| 亚洲国产精品久久久久久| 成人午夜精品一区二区三区| 99re8这里有精品热视频8在线| 91.·福利| 精品国产91亚洲一区二区三区www| 欧美成人a∨高清免费观看| 狠狠色丁香久久婷婷综| 99精品国产九九国产精品| 超级污的网站| 久久精品综合一区| 久久久www成人免费精品| 亚洲图片欧美视频| 老司机一区二区三区| 日本久久免费| 日韩av电影免费| 视频二区一区| 91精品国产色综合| 欧美日韩国产三级| 99免费精品视频| 国精品一区二区三区| 美女福利一区二区| 天堂中文字幕| 最新av在线免费观看| 欧美洲成人男女午夜视频| 69成人精品免费视频| 久久久国产精品不卡| 欧美激情第二页| 亚洲精品自拍| 日本天堂在线观看| 天堂在线资源视频| 久久精品综合一区| 性欧美视频videos6一9| 日韩一区二区中文字幕| gogo大胆日本视频一区| 亚洲私人影院| 巨人精品**| 在线毛片观看| 999国产在线视频| 黄页在线观看| 欧美a级免费视频|