@PathVariable注解
@PathVariable用于提取URL路径中的变量值,常用于RESTful风格接口开发。
基本使用
单个路径变量
Java
@Controller
public class UserController {
@GetMapping("/user/{id}")
public String getUser(@PathVariable("id") Integer userId) {
System.out.println("用户ID:" + userId);
return "userDetail";
}
}
请求:/user/100 → userId = 100
多个路径变量
Java
@GetMapping("/user/{userId}/order/{orderId}")
public String getOrder(
@PathVariable("userId") Integer userId,
@PathVariable("orderId") Integer orderId
) {
return "orderDetail";
}
请求:/user/1/order/100
属性说明
| 属性 | 说明 | 默认值 |
|---|---|---|
| value | 路径变量名 | - |
| required | 是否必填 | true |
required属性
Java
@GetMapping("/product/{id}")
public String getProduct(
@PathVariable(value = "id", required = false) Integer id
) {
if (id == null) {
return "productList";
}
return "productDetail";
}
名称省略
当路径变量名与方法参数名相同时可省略value:
Java
@GetMapping("/user/{id}")
public String getUser(@PathVariable Integer id) {
return "userDetail";
}
正则表达式
路径变量支持正则表达式限制格式:
Java
@GetMapping("/user/{id:\\d+}")
public String getUser(@PathVariable Integer id) {
return "userDetail";
}
@PathVariable绑定路径变量,@RequestParam绑定请求参数,两者用途不同。
要点总结
- @PathVariable绑定URL路径中的变量值
- value属性指定路径变量名,名称相同时可省略
- required=false允许路径变量缺失
- 支持正则表达式限制格式:
{变量名:正则}
📝 发现内容有误?点击此处直接编辑