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

@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 解析。

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

http://www.xdnf.cn/news/9888.html

相关文章:

  • 农村土地承包经营权二轮延包—归户表
  • day13 leetcode-hot100-22(链表1)
  • cf2059B
  • 【模板-指南】
  • 12:遨博机器人开发
  • 软考-系统架构设计师-第七章 软件工程基础知识
  • 学生管理系统V2.0
  • PCA主成分分析与Python应用
  • View的工作流程——measure
  • Linux实操篇-进程管理
  • 防火墙ASPF(针对应用层包过滤技术) FTP(主动模式)
  • 为什么我开始用 Data.olllo 做数据处理了?
  • langchain框架-对比分析chain的三种实现方式
  • 【二】10.L并发与竞争机制
  • HOW - 简历和求职面试宝典(三)
  • Python多版本共存指南:使用虚拟环境实现不同Python版本的灵活切换
  • 【CBAP50技术手册】#29 Mind Mapping(思维导图):BA(业务分析师)的“思维引擎”
  • Debian:自由操作系统的精神图腾与技术基石
  • Python 基于卷积神经网络手写数字识别
  • (二)视觉——工业镜头(以海康威视为例)
  • 罗马-华为
  • CC攻击的种类与特点解析
  • ElementUI表单验证指南
  • Spring Boot的启动流程,以及各个扩展点的执行顺序
  • AI视频生成加速器:Medeo如何用零门槛技术重塑内容创作
  • 【python爬虫】利用代理IP爬取filckr网站数据
  • UFSH2024 程序化生成 笔记
  • GJOI 5.27 题解
  • 增广拉格朗日时空联合规划ALTRO-iLQR (一)
  • 2.qml使用c++