requestBody和requestParam问题

requestBody和requestParam问题

@PostMapping("admin/category/update")
public ApiRestResponse updateCategory(@Valid @RequestBody UpdateCategoryReq updateCategoryReq, HttpSession session)

@PostMapping("/select")
@ApiOperation("选择/不选择购物车的某商品")
public ApiRestResponse select(@RequestParam Integer productId, @RequestParam Integer selected) {


如上代码,有以下问题

1. 为什么同样都是 Post请求,, 有的函数用 @RequestParam接收 有的用 @RequestBody,,

@RequestParam是不是指 url上面的参数????      @RequestBody是不是指 请求体,即URL上看不见,要在F12开发模式下看请求体的 参数?? 

2. Post方式不是默认使用 请求体提交参数的吗??  为什么用  @RequestParam也能接收??

3.  为什么使用postman就能实现  使用post请求也能在 url  上提交参数??

4.  我用网页的   <form>标签,method=post,的情况下,,浏览器是不是 以请求体的方式 发送参数?? 我在后台是不是  使用 @RequestParam 或者 @RequestBody  都能接收到参数?

5.其实上面 4个问题 都基本一样,反正一个点回答清楚,一通百通。

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,

1、1)是的

      2)不是的,GET请求是不可以用@RequestBody来接收参数的

2. requestBody是把请求的内容里的内容都读出来。正常接收的参数是一个对象

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~


好帮手慕小脸 2020-09-11 17:09:13

同学你好,

1、@RequestBody主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的)

       而@RequestParam 是从请求头中获取参数    

        2)理解是可以的

        3 )是的

2、1)是的,默认使用请求体

     2)使用@RequestParm用于绑定controller上的参数,可以是多个参数,也可以是一个Map集合,GET,POST均可。

3、post请求也是可以在路径后面提交参数的

4、1)是的

       2)使用@RequestParm用于绑定controller上的参数,可以是多个参数,也可以是一个Map集合,GET,POST均可。

    使用@RequestBody,json串会合并在一起,就不能用单个基本数据类型接收,要用一个对象来接收

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

  • 提问者 py_builder #1
    意思是不是 1. 前端传过来的参数都可以看作是 json字符串 ?? (框架提供了工具自动转换),无论是 @RequestParam 还是 @RequestBody 都可以接收 post,get请求的参数?? 2. 但用了 @RequestBody后,就必须用对象来接收参数??
    2020-09-11 20:24:24
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师