使用Spring MVC在表单验证后保留File字段的值

时间:2012-05-09 09:06:15

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

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

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

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

private MultipartFile docFile;
private MultipartFile pictFile;

和JSP:

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

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

2 个答案:

答案 0 :(得分: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) {
    ...
}

答案 1 :(得分:0)

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