1.作用
主要用于处理URL中的动态部分。当你的URL有一部分是动态改变的,比如/users/{id},那么你可以使用@PathVariable来匹配这个动态部分。
注意:@PathVariable注解的值是必须的,如果URL中没有对应的动态部分,那么在执行代码时就会出现错误。
2.使用
2.1基本使用
在控制器的方法参数上使用@PathVariable注解可以把 URL 中的占位符参数绑定到控制器处理方法的入参上。例子:
@RequestMapping("/users/{id}")
public String getUser(@PathVariable String id) {
// ...
}
// {id}就是URL中的动态部分,它会被绑定到参数id上。
2.2多个动态参数
在一个URL中使用多个{}进行动态部分的匹配。例子:
@RequestMapping("/users/{userId}/orders/{orderId}")
public String getOrder(@PathVariable String userId, @PathVariable String orderId) {
// ...
}
2.3自定义名称
如果方法的参数名称与URL中的动态部分名称不一致时,可以在@PathVariable注解中指定名称。
@RequestMapping("/users/{id}")
public String getUser(@PathVariable("id") String userId) {
// ...
}
2.4类型转换
Spring会自动进行类型转换,把URL中的字符串信息转换为方法参数的数据类型。
@RequestMapping("/users/{id}")
public String getUser(@PathVariable Long id) {
// ...
}
// {id}会被自动转换为一个Long类型的参数。