常见的接⼝请求类型和@RequestBody、@RequestParam的使⽤1. 常见的接⼝请求类型:
常见的接⼝有如下四种类型,分别是含有查询参数的接⼝,表单类型的接⼝,json类型的接⼝以及含有上传⽂件的接⼝。
1.1 含有查询参数的
1.2 表单类型的
1.3 json 类型的
1.4 包含上传⽂件的
2. @RequestParam、@RequestBody
2.1 @RequestParam
@RequestParam主要⽤于将请求参数区域的数据映射到控制层⽅法的参数上。parameter数据类型
@RequestParam⽤来处理 Content-Type 为 application/x-www-form-urlencoded 编码的内容,Content-Type默认为该属性。  @RequestParam也可⽤于其它类型的请求,例如:POST、DELETE等请求。
2.2 @RequestBody
注解@RequestBody接收的参数是来⾃requestBody中,即请求体。⼀般⽤于处理⾮ Content-Type: application/x-www-form-urlencoded编码格式的数据,⽐如:application/json、application/xml等类型的数据。
⼀般情况下后端会有⼀个参数实体类加上 @RequestBody 注解来接收 application/json 请求类型的数据。如果请求是application/json 类型,对应的实体类没有加 @RequestBody 注解,就会接不到相关参数。
2.3 案例
(1) post 请求 application/json 类型 body 中的请求体数据和 拼在 url 后⾯的参数是可以同时存在的:
后端接⼝这样接收数据:
@PostMapping("updateTableDataDL")
public AjaxResult updateTableDataDL(@RequestBody List<TableDataParam> dataParamList, String rowGuid){ int result =0;
try{
result = reportTableService.updateTableDataDL(dataParamList, rowGuid);
}catch(Exception e){
<(e.getMessage());
}
return toAjax(result);
}
(2)⽂件上传请求携带表单的其他参数
后端接⼝这样接收数据:
@PostMapping("/add")
public AjaxResult addcar(TzCar tzCar, HttpServletRequest request){
// 返回此车辆的 rowGuid
int result =0;
try{
result = tzCarService.insertTzCar(tzCar, request);
}catch(Exception e){
<(e.getMessage());
(e.getMessage());
}
return toAjax(result);
}
其中 TzCar 就是表单的其他参数封装的参数实体类,两个⽂件 file1、file2 是在 HttpServletRequest 中接收。具体解析可以看这边暂时到这⾥、后续再更新