我试图让 Spring 验证提交的表,但在提交后它只会重新加载 portlet(没关系,但它应该显示错误消息)。
代码的重要部分:
我的 JSP
<form:form method="post" action="${submitFormLink}" modelAttribute="formObject" commandName="formObject" enctype="multipart/form-data">
<form:errors path="*" cssClass="errorblock" element="div" />
<table>
<tr>
<td>
<form:input type="text" path="someVar"/>
</td>
<td>
<form:errors path="someVar" cssClass="error" />
</td>
</tr>
</table>
</form:form>
我的控制器
@RequestMapping
public String create(Model model) throws IOException {
model.addAttribute("formObject", new FormObject());
return "view";
}
@ActionMapping(params = {"action=submit"})
public void submit(ActionRequest request, @Valid @ModelAttribute("formObject") FormObject formObject,
ActionResponse response) throws IOException, RepositoryException,
PortalException, SystemException {
// some unimportant stuff
// I want to validate automatically not by calling BindingResult
}
我也包括了
<mvc:annotation-driven />
在我的 foo-context.xml 中并将约束设置为 FormObject 变量之一,如下所示:
@Size(min = 1, max = 35, message = "Enter between 1-35 characters.")
private String someVar;
提交后我的错误块不会被错误填充,它们只是保持为空<td>
,就好像验证成功一样。
谁能告诉我关于配置我错过了什么,或者我做错了什么?谢谢!