【问题标题】:Keep value of File field after form validation with Spring MVC使用 Spring MVC 进行表单验证后保留 File 字段的值
【发布时间】:2012-05-17 18:49:10
【问题描述】:

我尝试使用 Spring MVC 制作一个涉及验证器的表单。

表单包含一些文件字段,但如果验证失败,我会丢失这些值。

我的模型属性包含 MultipartFile 类型的对象:

private MultipartFile docFile;
private MultipartFile pictFile;

和 JSP:

<input type="file" id="docFile" name="docFile" />
<input type="file" id="pictFile" name="pictFile" />

如果验证失败,有什么方法可以保留这些值?

【问题讨论】:

    标签: forms spring model-view-controller spring-mvc


    【解决方案1】:

    你需要 ModelAttribute...在控制器中创建 ModelAttribute

    @ModelAttribute("prj")
    public ProjektSuche projektSearchForm() {
        if (searchForm == null) {
            searchForm = new ProjectSearch();
        }
        return searchForm;
    }
    

    并且表单具有属性modelAttribute,例如:

    <form:form method="get" modelAttribute="prj" action="${urlStartSearch}">
        ...
    </form>
    

    prj 是您在上一步中选择的名称。请求处理方法(同一个控制器)是这样的:

    public ModelAndView startProjektSuche(@Valid @ModelAttribute("prj") ProjektSuche prjSearch, BindingResult result) {
        ...
    }
    

    【讨论】:

    • JSR 303 验证此 ModelAttribute 的字段
    【解决方案2】:

    多部分文件类型对象永远不会从代码中更新。它们只能通过用户操作中的浏览按钮进行更新。

    【讨论】:

      猜你喜欢
      • 2015-10-26
      • 1970-01-01
      • 1970-01-01
      • 2014-07-26
      • 2016-07-20
      • 2013-11-03
      • 2011-09-18
      • 2012-12-22
      • 1970-01-01
      相关资源
      最近更新 更多