Весенняя форма только с одним вводом типа = файл

Я пытаюсь загрузить MultipartFile с помощью spring.

Я хочу использовать форму Spring теги, чтобы содержать ввод типа файла, который в конечном итоге загрузит этот файл в мой контроллер. Итак, я создал класс FileForm, который представляет собой просто java-бин с одним свойством типа MultipartFile.

Мой JSP выглядит так:

        <form:form modelAttribute="azrAgbFileForm" action="${uploadAzrAgb}" method="POST" enctype="multipart/form-data" cssClass="form-horizontal highlighted" role="form">
                <label for="uploadFile_upload_azrAgb" class="col-sm-4 control-label"><img src="<c:url value="/public/resources/images/doc.png"/>"></label>
                <form:input id="uploadFile_upload_azrAgb" path="file" type="file" cssClass="form-control" cssErrorClass="form-control error"/>
                <button type="submit" class="btn btn-primary" style="float:left; margin-top: 10px;">Upload bestand</button>
        </form:form>

И мой метод контроллера выглядит следующим образом:

@RequestMapping(value="/azrAgb", method={RequestMethod.GET, RequestMethod.POST})
public String uploadAzrAgb(@ModelAttribute(value="azrAgbFileForm") FileForm form, BindingResult result, Model model) {
    //doing some stuff here
}

Проблема в том, что когда я нажимаю «Отправить», атрибут моей модели azrAgbFileForm присутствует в моем методе контроллера, по его свойству file имеет значение null, хотя я выбрал файл для загрузки, а путь моего ввода установлен на "file", в моем JSP .

Я также настроил свой multipartBean следующим образом:

<beans:bean id="multipartResolver"
        class="org.springframework.web.multipart.support.StandardServletMultipartResolver">
</beans:bean>

Почему свойство файла моей формы не установлено, и действительно ли мне нужен для этого класс формы? Есть ли способ использовать тег формы Spring без создания в этом случае этого класса формы только с одним свойством?

В соответствии с запросом мой web.xml начинается так:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
            http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    version="3.0">
    <!-- some servlet and security configurations -->
</web-app>

person Henrique Ordine    schedule 09.04.2015    source источник
comment
Ну, вам не нужен класс для инкапсуляции form в качестве свойства. Чтобы использовать StandardServletMultipartResolver, вы должны использовать контейнер сервлета 3.0 или выше и несколько других необходимых конфигураций. Можете ли вы опубликовать свой web.xml или конфигурацию вашего сервера.   -  person minion    schedule 09.04.2015
comment
Я отредактировал свой вопрос, чтобы включить его. Этого достаточно? Какую конфигурацию мне не хватает и как я могу использовать форму Spring без класса Form? Спасибо за помощь.   -  person Henrique Ordine    schedule 09.04.2015


Ответы (1)


Я добавил этот маленький тег в свою конфигурацию DispatcherServlet в моем файле web.xml, и это сработало:

<multipart-config />
person Henrique Ordine    schedule 09.04.2015