java后台控制层接收复杂参数(对象集合,多个文件对象)
1.接收集合对象
创建一个类
,然后将要
接收的对象集合作为一个属性就行,控制层加个@RequestBody
代码如下:
接收实体类
package cn.mindgd.dto;
import cn.mindgd.domain.Engineering;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import java.util.List;
/**
* @author JiaXinMa
* @description 工程 接收对象实体类
* @date 2021/7/5
*/
@ApiModel("工程接收对象实体类")
@Data
public class EngineeringDto {
private List<Engineering> engineeringList;
private Integer siteId;
}
控制层:
/**
* @author: JiaXinMa
* @description: 新建工程
* @date: 2021/6/30
* 添加工程的基础信息
*/
@ApiOperation(value = "新建工程,添加工程的基础信息", notes = "新建工程,添加工程的基础信息")
@PutMapping("/addBase")
public JsonData add(@RequestBody EngineeringDto engineeringDto) {
log.info("/api/engineering/addBase:{}", engineeringDto);
engineeringService.addBase(engineeringDto);
return new JsonData(JsonEnum.SUCCESS_ADD);
}
用 Knife4j 的调用接口:
控制台效果:
2.多个文件对象
直接用
数组
接收就行,加个**@RequestParam**
/**
* @author: JiaXinMa
* @description: 上传施工文件
* @date: 2021/7/5
*/
@ApiOperation(value = "上传施工文件", notes = "上传施工文件")
@PostMapping("/addConstructionAnnex")
public JsonData add(@RequestParam("file") MultipartFile[] files,
@RequestParam("constructionId") Integer constructionId) {
log.info("/api/annex/addConstructionAnnex:{}", files, constructionId);
String msg = annexService.addConstructionAnnex(files, constructionId);
return new JsonData(null, 200, msg);
}
Knife4j生成的文档传不了这种参数,用postman传参数
控制台效果:
确实生成了两个文件:
3.接收时间字段 在
时间字段加上@JsonFormat(pattern = “yyyy-MM-dd”)
4.如果是接收的字段
可传可不传就这样@RequestParam(value = “参数”,required = false)
想看更多精彩内容,可以关注我的博客园
我的博客园
版权声明:本文为weixin_38295272原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。