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