SpringBoot——@RequestBody和@RequestParam区别以及form-data和json的选取

2022-09-19 08:56:56

@RequestBody

  1. @RequestBody一般用于post方法,因为post的数据都在包含在请求体中的,正如注解的名字含有"body"身体的意思。
  2. 在@RequestBody中使用的json格式的数据,不能解析form-data的数据。
  3. @RequestBody只能有一个

后台接收举例

@PostMapping("/addcustomer")publicResultaddCustomer(@RequestBodyString jsondata){//获取的是json格式的数据,对数据进行对象的转换CustomerInfo customerInfo= JSON.parseObject(jsondata,CustomerInfo.class);return customerInfoService.addCustomer(customerInfo);}

@RequestParam

  1. @RequestParam一般用于get方法,数据在链接的请求头中,正如注解的名字含有"param"参数的意思。
  2. @RequestParam中一般用于默认格式以及form-data格式的数据的接收
  3. @RequestParam可以有多个,为多个属性设置@RequestParam

POST请求的常用方式

1、application/x-www-form-urlencoded

浏览器原生的表单,值为urlencoded之后的 key1=value1&key2=value2…

2、multipart/form-data

浏览器原生的文件表单,用于传输文件

3、application/json

常用的请求头格式,值为json串 {“key1”:“value1”,“key2”:“value2”}

@requestbody的接收

1、application/x-www-form-urlencoded

@requestbody能解析,但springmvc会进行解析,所以通常不用@requestbody。

2、multipart/form-data

@requestbody不能解析

3、application/json,application/xml等

@requestbody能解析,springmvc不会进行解析,所以必须要加@requestbody注解

  • 作者:奔跑的狮子a
  • 原文链接:https://blog.csdn.net/weixin_42247720/article/details/123147848
    更新时间:2022-09-19 08:56:56