[英]How to iterate though @RequestParam in Spring?
我正在 Spring 中構建 API,我有一個簡單的問題:
在對它們執行一些邏輯之前,我想對下面的這些參數執行檢查以查看它們是否包含值。
我是 Spring 的新手 - 有沒有辦法將這些值“獲取”到某種數據結構中,以便我可以執行檢查?
@RequestParam(value = "video") MultipartFile video,
@RequestParam(value = "pictureOne") MultipartFile pictureOne,
@RequestParam(value = "pictureTwo") MultipartFile pictureTwo,
@RequestParam(value = "pictureThree") MultipartFile pictureThree,
@RequestParam(value = "pictureFour", required = false) MultipartFile pictureFour,
@RequestParam(value = "pictureFive", required = false) MultipartFile pictureFive,
@RequestParam(value = "pictureSix", required = false) MultipartFile pictureSix,
@RequestParam(value = "pictureSeven", required = false) MultipartFile pictureSeven,
@RequestParam(value = "pictureEight", required = false) MultipartFile pictureEight,
@RequestParam(value = "pictureNine", required = false) MultipartFile pictureNine,
@RequestParam(value = "pictureTen", required = false) MultipartFile pictureTen)
如果要對所有這些值執行驗證並在結構中關閉它,我建議創建 DTO 對象並將所有變量作為字段,例如:
public class FilesDto{
private MultipartFile video;
private MultipartFile photos[];
}
//Getters setters...
然后在你的控制器中
@Autowired
private SomeValidator someValidator;
@RequestMapping(method = RequestMethod.POST)
public void savePhotos(@Valid FilesDto filesDto) {
....
}
@InitBinder("filesDto")
protected void initBinde(WebDataBinder binder) {
binder.setValidator(someValidator);
}
其中someValidator
是實現Validator
接口的類。 根據@mbridges 在評論中的說法,我還強烈建議使用數組而不是列出所有參數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.