Spring MVC — загрузка файла с валидацией

В прошлой заметке был описан базовый пример загрузки файла с помощью Spring MVC. Здесь будет рассмотрен вариант загрузки файла с реализацией валидации и паттерна Post-Redirect-Get.

В начале короткий код представления:

Теперь контроллер:

Валидация:

Здесь используется собственный класс UploadedFile — обертка для MulipartFile:

Как это всё работает?

Создана простая форма spring-mvc  form:form method="post" enctype="multipart/form-data" modelAttribute="uploadedFile" action="uploadFile" и кнопка для выбора\загрузки файла. Данные отправятся в контроллер в метод ModelAndView uploadFile(@ModelAttribute("uploadedFile") UploadedFile uploadedFile, BindingResult result) .

Здесь получаем MultipartFile из uploadedFile, а так же выполняем метод validate(). В FileValidator идет проверка на 0 размер файла и выдается ошибка с помощью метода rejectValue(). Если ошибка возникла, то переходим на страницу «main», где отображается текст ошибки.  В случае нормальной загрузки файла используется редирект с статусом FOUND и перенаправляется на страницу «fileuploaded» уже с методом GET (метод String fileUploaded() ) при этом добавляя объект в сессию(см. аннотацию SessionAtribute в контроллере).

Share Button
3
8104 Total Views 1 Views Today

Добавить комментарий