@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注解
