Я использовал проверку JSR 303 с валидатором спящего режима, чтобы поля были проверены автоматически, указав @Valid на метод контроллера. Валидация работает нормально. Я знаю, что добавили поле для загрузки в форму и добавили файл @RequestParam («file») в качестве файла MultipartFile. Теперь он работает только в том случае, если все поля действительны при отправке, иначе я получаю 404 (Bad Request). Если удалить @Valid аннотацию я получаю javax.validation.ConstraintViolationException со всеми нарушениями проверки с указанием статуса 500.spring 3 автоматическая проверка поля формы с загрузкой файла
Я использую Spring 3.2
моя форма:
<form action="#springUrl("/admin/stores/save")" method="POST" enctype="multipart/form-data">
Name:
#springBind("store.name")
<input type="text"
name="${status.expression}"
value="$!status.value" /><br>
......
<input type="file" name="file" accept="image/*">
<input type="submit" value="submit"/>
</form>
Контроллер:
@RequestMapping(value="/save", method = RequestMethod.POST)
@Transactional
public String save(@Valid @ModelAttribute Store store, @RequestParam("file") MultipartFile file, BindingResult bindingResult, ModelMap model) {
if (bindingResult.hasErrors()) {
model.addAttribute("message", "Failed");
model.addAttribute("store", store);
return "admin/stores/form";
} else {
.....
Большое спасибо! Где я могу найти возможные различные перестановки сигнатур методов и типы параметров и их порядок, если они применяются для методов аннотированных контроллеров? Я не мог найти детали в документации. Еще раз спасибо! – user979051
Добро пожаловать. Я думаю, что это только случай с принудительным порядком. Но вы можете найти целые правила о параметрах по ссылке выше (http://static.springsource.org/spring/docs/3.2.x/spring-framework-reference/html/mvc.html#mvc-ann-arguments), где вы должен читать весь раздел _Поддерживаемый аргумент метода аргументов_. Для этого случая есть абзац, в котором говорится: _org.springframework.validation.Errors/ org.springframework.validation. Результаты проверки BindingResult для предшествующей команды или объекта формы (непосредственно предшествующий аргумент метода) ._ –
Еще раз спасибо! – user979051