目前我正在尝试了解Spring MVC 3.1中表单提交/验证/错误处理的正确工作流程。不,我有一些问题。
答案 0 :(得分:4)
参考文件:
1。)使用RequestContextUtils中的FlashMap属性。
2)。 当使用MVC命名空间时,假设JSR-303实现在类路径上可用,则自动配置JSR-303验证器。任何ConstraintViolations将自动作为标准Spring MVC表单标签可渲染的BindingResult中的错误公开。
3.使用path =“*”列出所有错误
<form:form>
<form:errors path="*" cssClass="errorBox" />
<table>
<tr>
<td>First Name:</td>
<td><form:input path="firstName" /></td>
<td><form:errors path="firstName" /></td>
</tr>
<tr>
<td>Last Name:</td>
<td><form:input path="lastName" /></td>
<td><form:errors path="lastName" /></td>
</tr>
<tr>
<td colspan="3">
<input type="submit" value="Save Changes" />
</td>
</tr>
</table>
</form:form>
答案 1 :(得分:1)
1)在Spring 3.1中,您可以使用RedirectAttributes。它们专为Post / Redirect / Get screnario设计。你可以在这里看到一个很好的例子:Spring - Redirect after POST (even with validation errors)
2)我认为JSR-303验证器意味着简单,自立,并且彼此独立。虽然有可能以他们访问其他持久性实体等方式编写它们 - 但这不是最佳实践。我亲自检查控制器中的重复电子邮件。如果电子邮件已经存在 - 我将新的FieldError添加到BindingResult。