Forms 使用SpringMVC进行表单验证后保留文件字段的值

Forms 使用SpringMVC进行表单验证后保留文件字段的值,forms,spring,model-view-controller,spring-mvc,Forms,Spring,Model View Controller,Spring Mvc,我尝试用SpringMVC做一个包含验证器的表单 表单包含一些文件字段,但如果验证失败,我将丢失这些值 “我的模型”属性包含类型为MultipartFile的对象: private MultipartFile docFile; private MultipartFile pictFile; 和JSP: <input type="file" id="docFile" name="docFile" /> <input type="file" id="pictFile" name=

我尝试用SpringMVC做一个包含验证器的表单

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

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

private MultipartFile docFile;
private MultipartFile pictFile;
和JSP:

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


如果验证失败,有没有办法保留这些值?

您需要控制器中的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>

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

JSR 303此ModelAttribute字段的验证
public ModelAndView startProjektSuche(@Valid @ModelAttribute("prj") ProjektSuche prjSearch, BindingResult result) {
    ...
}