@RequestBody 和 @RequestParam

在前后端传json数据进行交互的时候,同学们会经常用到的两个注解。


@RequestBody@RequestParam主要是用来接收前端传给后端的json数据。一般来说,@RequestBody注解一般使用在post请求中,因为前端将json数据放在了请求体中。在后端接收的方法里@RequestBody可以和@RequestParam同时使用,但一个方法里,@RequestBody只能有一个,@RequestParam可以有多个。@RequestParam使用在GET请求方式中,可以接收普通元素、数组、集合、对象等。

如果参数放在请求体中,传入后台需要用@RequestBody进行接收;如果不是放在请求体中的话,那么后台接收前台传过来的参数时,要用@RequestParam进行对应接收。


使用@RequestParam(xxx),前端必须要有对应的xxx名字,可以通过设置reqired属性来调节是否必须传。


如果不写@RequestParam(xxx)的话,那么会自动匹配方法参数,如果命名不同会默认接收为空。


如果后端接收参数是一个对象,且该参数是用@RequestBody修饰的,那么前端json传数据,要满足:

  • 后端将http输入流装配到目标类时,会根据json字符串中的key来匹配对应实体类的属性,如果匹配一致且json中的key对应符合,那么后端能成功接收
  • json字符串中,如果value为""的话,后端对应属性如果是String类型的,那么接受到的就是"",如果后端对应的是引用类型Integer、Double等的话,那么就收的就是null
  • json字符串中,如果value为null的话,后端接收到的就是null
  • 如果某个参数没有value,在传json给后端的时候,要么干脆不该把盖子端写到json中,要么就给value赋值""或null
  • RequestBody 使用方法一

  • 这里有Person类,对应属性有String name,Integer age,可以通过String来接收json串
  • RequestBody 使用方法二

  • 可以使用对象来接收前端json串
  • 15
    点赞
  • 72
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值