@RequestBody和@RequestParam的区别与用法

  • @RequestBody主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的),因此@RequestBody只能用于接收POST请求的参数
  • RequestParam接收的是key-value里面的参数(URL中的参数),通常用于接收GET请求的参数(POST也能接收只接收URL里的,请求体的接收不到)
    即:
    如果参数是放在请求体中,传入后台的话,那么后台要用@RequestBody才能接收到;
    如果不是放在请求体中的话,那么后台接收前台传过来的参数时,要用@RequestParam来接收。或则形参前什么也不写也能接收,不过参数名要与方法形参名一直才能绑定。

刚步入工作岗位,做项目开发时,发现前端传来的数据一直封装不上。通过查阅资料发现:

  • 尽管@RequestParam和@RequestBody都能接收Post方式请求传来的数据,但是@RequestParam不能接收json字符串,而@RequestBody能。
  • @RequestBody不能接收form-data类型的内容,@RequestParam能。后来改用@RequestBody进行参数绑定,仍不成功!
  • 原来json字符串中多个参数时@RequestBody并不能直接封装到Map,只有在接收单个参数时,才能将其封装绑定到Map中。
  • @ReuestBody接受单个参数的时候只能先使用Map<String,Object> params接收,然后再使用params.get(“name”)获取参数的值。

详细用法和扩展参考:
链接: @RequestBody和@RequestParam的区别

POST请求时:
在这里插入图片描述


版权声明:本文为weixin_43587472原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。