gpt4 book ai didi

java - 如果使用 MultipartFile,则有效注释不适用于对象

转载 作者:行者123 更新时间:2023-12-02 01:42:31 25 4
gpt4 key购买 nike

如果存在 MultipartFile,为什么 @Valid 注释不适用于我的域模型?我的 Controller 中有以下代码:

@PostMapping("/create")
public String create(@Valid Game game, MultipartFile[] screenshotFiles, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return "game/create";
}
// others lines removed for brevity
}

我在方法签名以及 bindingResult.hasErrors 中放置了要调试的断点,但无法调试它。提交后,它不会立即到达 if (bindingResult.hasErrors()),但很快就会显示 Whitelabel 错误页面:

Validation failed for object='game'. Error count: 1

如果不包含MultipartFile,它就可以工作。需要明确的是,我不是验证 MultipartFile 而是验证 Game 对象。我看到了一些似乎与此类似的问题,但它们正在验证 MultipartFile 本身。

最佳答案

将方法签名更改为:

public String create(@Valid Game game, BindingResult bindingResult, MultipartFile[] screenshotFiles)

验证结果参数应该在被验证的参数之后。

来自 spring 引用 documentation :

Data binding can result in errors. By default, a BindException is raised. However, to check for such errors in the controller method, you can add a BindingResult argument immediately next to the @ModelAttribute

关于java - 如果使用 MultipartFile,则有效注释不适用于对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54250278/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com