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

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

@PostMapping("/addcustomer")
   public Result addCustomer(@RequestBody String jsondata){

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

@RequestParam
@RequestParam一般用于get方法,数据在链接的请求头中,正如注解的名字含有"param"参数的意思。
@RequestParam中一般用于默认格式以及form-data格式的数据的接收
@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注解

你可能感兴趣的:(java,json,java)