0%

spring | @PathVariable

带占位符的URL是 Spring3.0 新增的功能,URL 中的 {xxx} 占位符可以通过 @PathVariable("xxx") 绑定到操作方法的入参中。

1
2
3
4
5
@RequestMapping("/user/{id}")
public String testPathVariable(@PathVariable("id") String id){
   System.out.println("路径上的占位符的值="+id);
   return "success";
}

URL 中只存在一个一个占位符的时候,可以省略这个 @PathVariable 注解,此时后面参数名必须和占位符的名字一致。

1
2
3
4
5
6
@RequestMapping("/user/{id}")
// 这个参数名必须是id,和占位符一致才可以识别到。
public String testPathVariable(String id){
   System.out.println("路径上的占位符的值="+id);
   return "success";
}

当给定 @PathVariable 注解的时候,这个注解中的值必须和占位符名一致,此时后面的参数名可以自定义。

1
2
3
4
5
6
@RequestMapping("/user/{id}")
// @PathVariable("id") 中的参数名必须和占位符一致,此时后面的参数可以任意给定。
public String testPathVariable(@PathVariable("id") String myId){
   System.out.println("路径上的占位符的值="+myId);
   return "success";
}

当存在多个占位符的时候,此时不可以省略 @PathVariable 注解,并且要把其中的参数和占位符相对应。

1
2
3
4
5
@RequestMapping("/user/{id}/{name}")
public String testPathVariable(@PathVariable("id") String myId, @PathVariable("name") String myName,){
   System.out.println("路径上的占位符的值="+id);
   return "success";
}
请我喝杯咖啡吧~