@RequestBody @RequestParam @ModelAttribute学习记录

本文记录了在开发中遇到的Spring注解使用问题,详细介绍了@RequestBody、@RequestParam和@ModelAttribute的区别与应用场景。当接口参数中同时使用这两个注解时会导致Json解析错误,解决方案是改用@ModelAttribute。还探讨了不同数据格式的处理,并提到了Swagger作为接口测试和文档工具的使用。
摘要由CSDN通过智能技术生成

前言

最近做的一个功能里面接触到了Spring相关的一些知识点,目前还没系统学Spring,先根据遇到的问题零碎学习并进行总结。后续系统学习Spring后再整体做总结。

开发这个功能遇到一个问题,原本接口参数中有@RequestBody,后续需求变更又加了@RequestParam,测试的时候报Json parser error的错误,网上查询说是这两个东西不能同时存在一个方法的参数列表中(json无法与form兼容),后面将@RequestBody改为@ModelAttribute解决问题。网上查询学习这三个注解 现进行简单记录。

知识点

当前台界面使用GET或POST方式提交数据时,数据编码格式由请求头的ContentType指定。分为以下几种情况:
1. application/x-www-form-urlencoded,这种情况的数据@RequestParam、@ModelAttribute可以处理,@RequestBody也可以处理。
2. multipart/form-data,@RequestBody不能处理这种格式的数据。(form表单里面有文件上传时,必须要指定enctype属性值为multipart/form-data,意思是以二进制流的形式传输文件。)一般使用@RequestParam处理
3. application/json、application/xml等格式的数据,必须使用@RequestBody来处理

4. 如果同步application/json和fo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值