找回密码
 立即注册
首页 资源区 代码 @ModelAttribute、@RequestBody、@RequestParam、@PathV ...

@ModelAttribute、@RequestBody、@RequestParam、@PathVariable 注解对比

袋岖荤 3 天前
​整理了下接收参数的注解。
注解绑定来源支持类型典型用途备注@ModelAttribute请求参数自动绑定到 JavaBean(含嵌套对象)JavaBean(含集合)表单提交(application/x-www-form-urlencoded)可用于初始化默认值@RequestBody请求体(JSON/XML)任意类型(常用于对象)JSON 请求体 {"id":1,"name":"Tom"}常与 @PostMapping、@PutMapping 结合使用@RequestParam请求参数(Query 或 Form)基本类型、String、数组、List?id=1&name=Tom适合简单参数@PathVariableURL 路径参数基本类型、String/user/123 → id=123REST 风格接口简单示例对比
@ModelAttribute
  1. @PostMapping("/register")
  2. public String register(@ModelAttribute User user) {
  3.     // 表单数据将自动绑定到 User 对象中
  4.     return "userInfo";
  5. }
复制代码
@RequestBody
  1. @PostMapping("/api/user")
  2. public ResponseEntity<?> saveUser(@RequestBody User user) {
  3.     // JSON 请求体 {"name":"Tom","age":20}
  4.     return ResponseEntity.ok(user);
  5. }
复制代码
@RequestParam
  1. @GetMapping("/search")
  2. public String search(@RequestParam String keyword) {
  3.     // /search?keyword=java
  4.     return keyword;
  5. }
复制代码
@PathVariable
  1. @GetMapping("/user/{id}")
  2. public String getUser(@PathVariable Long id) {
  3.     return "ID: " + id;
  4. }
复制代码
注意,@RequestBody 需要使用 HttpMessageConverter(如 Jackson、FastJson)支持 JSON 解析。
恐惧与否是你的选择。-- 烟沙九洲

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册