Допустимая аннотация не работает для объекта, если с MultipartFile - PullRequest
0 голосов
/ 18 января 2019

Почему аннотация @Valid не работает для моей модели домена, если есть MultipartFile? В моем контроллере есть следующие коды:

@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 Error Page с:

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

Работает, если MultipartFile не включен. Просто чтобы прояснить, я проверяю не объект MultipartFile, а объект Game. Я видел некоторые вопросы, которые, похоже, похожи на это, но они подтверждают сам MultipartFile.

1 Ответ

0 голосов
/ 18 января 2019

Измените подпись вашего метода на:

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

Аргумент результата проверки должен идти после проверки аргумента.

Начиная с пружины Документация :

Привязка данных может привести к ошибкам. По умолчанию значение BindException повышено. Однако, чтобы проверить наличие таких ошибок в методе контроллера, вы можете добавить аргумент BindingResult рядом с @ModelAttribute

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...