我想问一下,是否可以在Spring中明确设置验证顺序。我的意思是,我有这个命令对象:
public class UserData {
@NotBlank
private String newPassword;
@NotBlank
private String confirmPassword;
@Email(applyIf="email is not blank")
@NotBlank
private String email;
@NotBlank
private String firstName = "";
private String middleName = "";
@NotBlank
private String lastName = "";
// getters/setters
}
我在页面顶部显示错误消息,如下所示:
<spring:hasBindErrors name="${userData}">
<ul class="errors">
<c:forEach items="${errors.allErrors}" var="error">
<li><spring:message message="${error}"/></li>
</c:forEach>
</ul>
</spring:hasBindErrors>
问题在于我的错误消息按以下顺序显示:
* Fill you last name. * Fill you password. * Fill your emailaddress. * Fill you password again. * Select your gender. * Fill your first name.
这不是随机的,因为每次都会保留此顺序。这不是按字母顺序或任何其他顺序...我真的被卡住了。有人可以帮忙吗?
答案 0 :(得分:3)
SpringModules是一个死的项目,它不再受支持。如果您需要在Spring中使用JSR-303验证支持,我建议您使用参考实现Hibernate Validator和wire it up like so。
话虽如此,这可能无法解决您的问题,但至少您将使用最新的库,可能会更容易修复。
答案 1 :(得分:2)
我发现使用@GroupSequence可以工作,虽然它不是一个合适的解决方案。
请参阅http://www.jroller.com/eyallupu/entry/jsr_303_beans_validation_using以获取快速教程。