如何将上传的文件绑定到表单对象属性?

时间:2012-04-05 17:52:10

标签: spring spring-mvc multipartform-data

我想要这样的表单对象:

public class FormData {

    private MultipartFile file1;

    private MultipartFile file2;

    // setters/getters for above fields and other properties
}

我希望SpringMVC绑定例如<input type="file" name="file1"> HTML表单字段到我的表单对象属性。我在<form:file path="file1" />中找不到任何JSP标记(如<form:input type="file" path="file1" />spring-form.tld)。有可能吗?如果没有,这种限制是否在Spring内部根深蒂固,并且不容易克服?

我知道如何将文件上传表单值绑定到控制器方法参数(在documentation中描述):

@RequestMapping(value = {"/"}, method = RequestMethod.POST)
public ModelAndView compare(@ModelAttribute(FORM_BEAN_NAME) FormData formData,
    @RequestParam("file1") MultipartFile file1,
    @RequestParam("file2") MultipartFile file2,
    BindingResult bindingResult) {

但是如果所有HTML表单元素绑定到一个类并且添加新上载字段时方法签名不会提升,我会更高兴。

1 个答案:

答案 0 :(得分:1)

几年前我做到了这一点。我记得的唯一区别是我使用CommonsMultipartFile而不是接口。如果您尝试这样做会发生什么,它会抛出一个异常,或者只是值不受约束?