spring boot 接收参数 梳理
一段时间备受前后台传参 接参 问题的折磨,记住,忘记,反反复复, 抽时间出来好好梳理记录一下, 以防后面忘了,可以有个地方查询
Post传参
1、 参数为单个字符串,用 @RequestBody ,可以接收 非JSON 格式数据, 传输格式可以为JSON(application/json) TEXT(text/plain),XML(application/xml)等
会把传输到后台的全部字符串作为参数进行映射到该参数
1 2 3 4 5 6 7 8 9 10 11 | @RestController @RequestMapping ( "/reqType" ) public class RequestTypeController { @PostMapping ( "/post01" ) public String postMethod1( @RequestBody String reqStr) { System.out.println(reqStr); return reqStr; } } |
2、 多个String参数, @RequestBody 修饰其中某一个, 参数会作为一个字符串映射到被注解修饰的参数,其余的参数会为 null
1 2 3 4 5 6 | @PostMapping ( "/post02" ) public List postMethod2(String reqStr1, @RequestBody String reqStr2) { System.out.println(reqStr1); System.out.println(reqStr2); return Arrays.asList(reqStr1, reqStr2); } |
3、 DTO java 类用 @RequestBody 修饰, 不能使用字符串进行传参,也不能以表单形式,必须为JSON格式传输,json key 和属性对不上则无法映射赋值
1 2 3 4 5 6 7 8 9 10 11 12 | @PostMapping ( "/post03" ) public ReqDto postMethod3( @RequestBody ReqDto reqDto) { System.out.println(reqDto.getReqStr1()); System.out.println(reqDto.getReqStr2()); return reqDto; } @Data class ReqDto{ private String reqStr1; private String reqStr2; } |
4、 不用@RequestBody 修饰参数, 只能用 form 表单格式传输, 且参数名称需要对应一致,不一致情况需要用 @RequestParam 进行修正,
1 2 3 4 5 | @PostMapping ( "/post04" ) public String postMethod4(String reqStr1) { System.out.println(reqStr1); return reqStr1; } |
5、 @RequestParam 修饰的参数必须有其名称对应的参数,否则报错; 若@RequestParam 没有修饰,则可不进行对应, 参数为null,不报错
1 2 3 4 5 | @PostMapping ( "/post05" ) public String postMethod5( @RequestParam ( "reqStr3" ) String reqStr1) { System.out.println(reqStr1); return reqStr1; } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)