参数绑定注解
SpringMVC提供丰富的参数绑定注解,将请求数据自动绑定到方法参数。
常用注解概览
| 注解 | 绑定来源 | 示例 |
|---|---|---|
| @RequestParam | 请求参数 | /user?id=1 |
| @PathVariable | URL路径变量 | /user/1 |
| @RequestHeader | 请求头 | User-Agent |
| @CookieValue | Cookie值 | JSESSIONID |
| @RequestBody | 请求体 | JSON数据 |
| @ModelAttribute | 模型属性 | 表单绑定对象 |
RequestParam
绑定请求参数到方法参数:
Java
@GetMapping("/search")
public String search(@RequestParam("name") String name,
@RequestParam(defaultValue = "1") Integer page) {
return "result";
}
PathVariable
绑定URL路径变量:
Java
@GetMapping("/user/{id}")
public String getUser(@PathVariable Integer id) {
return "userDetail";
}
RequestHeader
绑定请求头信息:
Java
@GetMapping("/info")
public String info(@RequestHeader("User-Agent") String userAgent,
@RequestHeader("Accept") String accept) {
return "info";
}
CookieValue
绑定Cookie值:
Java
@GetMapping("/session")
public String session(@CookieValue("JSESSIONID") String sessionId) {
return "sessionInfo";
}
RequestBody
绑定请求体(JSON):
Java
@PostMapping("/user")
public String saveUser(@RequestBody User user) {
userService.save(user);
return "success";
}
ModelAttribute
绑定模型属性,常用于表单:
Java
@PostMapping("/user")
public String saveUser(@ModelAttribute User user) {
userService.save(user);
return "success";
}
@RequestBody用于接收JSON,@ModelAttribute用于接收表单数据。
要点总结
- @RequestParam:绑定请求参数,最常用
- @PathVariable:绑定路径变量,RESTful必备
- @RequestHeader/@CookieValue:绑定请求头和Cookie
- @RequestBody:绑定JSON请求体
- @ModelAttribute:绑定表单到对象
📝 发现内容有误?点击此处直接编辑