java后台控制层接收复杂参数(对象集合,多个文件对象),时间字段
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)
想看更多精彩内容,可以关注我的CSDN