@RequestBody和@RequestParam的用法

@RequestBody和@RequestParam的用法

最近在做项目的时候,遇到了一个postman请求,但后台接收不到参数的问题,
所以上网百度了一下,在此记录一下,以便以后查阅
本文中参考的博客链接如下:

https://blog.csdn.net/justry_deng/article/details/80972817.
https://blog.csdn.net/qq_16759541/article/details/89083510.

区别

  1. @RequestBody主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的);GET方式无请求体,所以用@ResponseBody接受数据时,前端不能使用GET方式提交数据,而是用POST方式进行提交。
  2. @RequestParam主要用来接收请求头中的数据,如果后台代码参数前使用了@RequestParam注解,则前台请求的json数据中就必须要有对应的参数,如果没有没有使用@RequestParam注解,前台请求的json数据没有该参数也可以。
  3. 请求体中的数据必须用@RequestBody接收
  4. 一个请求中只能有一个@RequestBody,可以有多个@RequestParam
  5. 可以使用@JsonAlias和@JsonProperty注解指定json中的参数和属性的对应关系

Jackson中 @JsonAlias和JsonProperty的区别

由于涉及到参数接收的问题,所以又去了解了一下Jackson的简单使用(项目中用到的是Jackson)
前情提要:

  • 序列化:将Java对象转换为json数据时
  • ​反序列化:将json数据转换为Java对象

1、@JsonAlias:只作用于反序列化时,即将json数据转换为Java对象时。

@JsonAlias({“bkcat”, “mybkcat”})
private String category;
以上代码中category是实际属性名

以上代码中category是实际属性名
当前台传递的json字符串是bkcat、mybkcat、category时该属性都能接收到值。
2、@JsonProperty:序列化反序列化都有用

@JsonProperty(“bookCategory”)
@JsonAlias({“bkcat”, “mybkcat”})
private String category;

以上代码中bookCategory是实际的属性名
当前台传递的json字符串是bookCategory、bkcat、mybkcat时后台该属性都可以接收到值,但当将Java对象转换为json数据时,该值对应的json数据是:bookCategoey
即{“bookCategory”:“xxx”}

刚开始尝试写博客,如果有理解不到位的地方,还请大家多多指教,一定改进

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值