【问题标题】:How to bind uploaded file to form object property?如何将上传的文件绑定到表单对象属性?
【发布时间】:2012-04-05 17:52:10
【问题描述】:

我想要这样的表单对象:

public class FormData {

    private MultipartFile file1;

    private MultipartFile file2;

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

我希望 SpringMVC 绑定例如<input type="file" name="file1"> HTML 表单字段到我的表单对象属性。我在spring-form.tld 中没有找到任何JSP 标记(如<form:file path="file1" /><form:input type="file" path="file1" />)。有可能吗?如果不是,这个限制是否根植于 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 表单元素都绑定到一个类并且在添加新的上传字段时方法签名不会提升,我会更高兴。

【问题讨论】:

    标签: spring spring-mvc multipartform-data


    【解决方案1】:

    几年前我就是这样做的。我能记得的唯一区别是我使用了CommonsMultipartFile 而不是接口。如果你尝试这个,它会抛出一个异常或者只是值没有被绑定会发生什么?

    【讨论】:

    • 你为什么不使用org.springframework.web.multipart.MultipartFile 接口来实现更通用的接口?
    • 我不记得原因了,也许它没有意义。你试过了吗?会发生什么?
    • 谢谢,看来绑定
    猜你喜欢
    • 2013-07-20
    • 1970-01-01
    • 1970-01-01
    • 2011-07-15
    • 1970-01-01
    • 2019-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多