1

我正在尝试使用 spring 上传 MultipartFile。

我想使用Spring 表单标签来包含类型文件的输入,该文件最终会将这个文件上传到我的控制器。所以我创建了一个FileForm类,它只是一个在 type 上只有一个属性的 java bean 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为空,即使我确实选择了要上传的文件,并且我的输入路径"file"在我的 JSP 中设置为 。

我也这样配置我multipartBean的:

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

为什么我的表单的文件属性没有被设置,我真的需要一个表单类吗?在这种情况下,有没有一种方法可以使用 Spring 的 Form 标签,而无需创建只有一个属性的 Form 类?

根据要求,我的 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>
4

1 回答 1

3

DispatcherServlet在 web.xml 的配置中添加了这个小标签,它起作用了:

<multipart-config />
于 2015-04-09T14:40:55.820 回答