全部学科
Python全栈
python
NodeJS全栈
nodejs
小程序首页
📅 2026-05-18 6 分钟 ✍️ juanwangdev

@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允许路径变量缺失
  • 支持正则表达式限制格式:{变量名:正则}

📝 发现内容有误?点击此处直接编辑

← 上一篇 POJO参数绑定
下一篇 → RESTful风格参数
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库