当前位置: 首页 > news >正文

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

整理了下接收参数的注解。

注解绑定来源支持类型典型用途备注
@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

@PostMapping("/register")
public String register(@ModelAttribute User user) {// 表单数据将自动绑定到 User 对象中return "userInfo";
}

@RequestBody

@PostMapping("/api/user")
public ResponseEntity<?> saveUser(@RequestBody User user) {// JSON 请求体 {"name":"Tom","age":20}return ResponseEntity.ok(user);
}

@RequestParam

@GetMapping("/search")
public String search(@RequestParam String keyword) {// /search?keyword=javareturn keyword;
}

@PathVariable

@GetMapping("/user/{id}")
public String getUser(@PathVariable Long id) {return "ID: " + id;
}

注意,@RequestBody 需要使用 HttpMessageConverter(如 Jackson、FastJson)支持 JSON 解析。

恐惧与否是你的选择。-- 烟沙九洲

相关文章:

  • VUE3+ts 实践记录
  • 【AI面试秘籍】| 第24期:Transformers / LLM的词表应该选多大?
  • 从本地到云端:Code App+SSH协议在iPad开发中的性能优化实战
  • pyinstaller 使用 控制台闪退解决办法
  • 文本预处理
  • ubuntu24.04与ubuntu22.04比,有什么新特性?
  • PS linux 基础篇1-AXI_DMA
  • 大数据学习(125)-hive数据分析
  • STM32CUBE打印浮点数据-cmake配置
  • NodeJS 基于 Koa, 开发一个读取文件,并返回给客户端文件下载,以及读取文件形成列表和文件删除的代码演示
  • 通配符(Wildcard)与正则表达式(Regular Expression)的关系及区别
  • MySQL高可用方案:Keepalived+双主库架构深度解析与实战指南
  • scrollTop 设为 0 不生效的可能原因
  • 23、Swift框架微调实战(3)-Qwen2.5-VL-7B LORA微调OCR数据集
  • 01.认识Kubernetes
  • 【Linux】揭秘Linux进程优先级与调度机制
  • 探秘文件系统:定义、功能与各类型全方位对比
  • zynq ad7616 调试笔记
  • Ubuntu20.04操作系统ssh开启oot账户登录
  • [ Qt ] | Qlabel使用
  • 网站404怎么做视频教程/seo核心技术排名
  • 网站在美国做的服务器/济南seo顾问
  • discuz做视频网站/百度一下你就知道了
  • 宿州建设网站/网络广告推广方式
  • google帐户登录网站如何做的/培训心得体会1500字
  • 做翻译的网站/百度账户安全中心