В контроллере, которого достигает метод post, у меня есть:< /p>
Код: Выделить всё
@RequestMapping(value = "/add", method = RequestMethod.POST)
public String processAddNewEvent(@Valid @ModelAttribute("newEvent") EventDto newEvent, @ModelAttribute("imageFile") MultipartFile imageFile, BindingResult result, HttpServletRequest request) {
if(result.hasErrors()) {
return "addEvent";
}
return "redirect:/events";
}
Но в этом методе я получаю от формы два параметра: объект newEvent и файл (imageFile) . В этом случае, как только эта функция вызывается, я получаю исключение MethodArgumentNotValidException. Однако, если я удалю imageFile и получу только объект newEvent, исключение не будет выброшено, и проверка будет работать правильно.
То есть, если контроллер выглядит так, проверка работает, и у меня нет исключений:
Код: Выделить всё
@RequestMapping(value = "/add", method = RequestMethod.POST)
public String processAddNewEvent(@Valid @ModelAttribute("newEvent") EventDto newEvent, BindingResult result, HttpServletRequest request) {
if(result.hasErrors()) {
return "addEvent";
}
return "redirect:/events";
}
Спасибо и извините за мой английский!
Моя идея решить эту проблему — поместить файл изображения внутри класса newEvent и, таким образом, получим только один объект. Я до сих пор не знаю, сработает ли это. Я просто хочу хорошо понять проблему
Подробнее здесь: https://stackoverflow.com/questions/791 ... idexceptio