采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师我看你在controller层获取参数的时候,有时候加了注解@RequestBody有时候加了注解@RequestParam,这两个注解有什么区别,应用场景是什么样的,还有这两个注解关于前端通过ajax传参的时候需要有什么变动或者说是区别?这两个注解是否能同时用?老师恳请详解,百度了很多,但是对于答案依然很模糊。
这个最好自己可以试下,我现在后端springboot全部采用@RequestBody接受post请求方式,不能接受get方式,前端采用application/json编码方式,参数都是再请求体里面的,并且请求体里面的参数要和实体类属性名要一样的。不然会报错,
比如你前端
data: {
userId: userId,
},
后端
@RequestBody Users users
实体类
private String userId;
画粗线的地方名称要对上。
@RequestParam用来接受请求,post/get请求只接受application/x-www-form-urlencoded编码,你前台自定义application/json编码就接受不到了,有些前端框架未指定编码默认就是application/json,所以要注意点。
这些框架接受参数的用法,都和编码,和请求类型有关,有些编码接受不到,有些只支持post请求比如@RequestBody
感谢同学的分享:)
同学好,这周和下周我都在国外,只能手机答疑,这两个区别主要在于前者获取某个具体参数并且自动转换类型,第二个是从post请求里获取请求body的整体信息并作转换。
老师,你这说了跟没说一样啊。这个我在百度也可以找到啊。老师我的问题要看清楚哦。
才从飞机到住的地方,一般RequestBody是用在解析json,将其转换成实体类,支持application/json, application/xml,application/x-www-form-urlencoded等contentType,而@RequestParam这个一般就是在ajax里面没有声明contentType的时候application/x-www-form-urlencoded 能不能共存同学直接试一下,就知道当contenttype是application/x-www-form-urlencoded的时候,都是能共存的。适用的场景其实能支持的地方都能使用
登录后可查看更多问答,登录/注册
SSM商铺V1.0,解决毕设痛点;SpringBoot商铺V2.0,满足工作刚需
1.9k 47
1.8k 41
2.5k 40
1.8k 39
1.5k 37