Spring Validation Annotations Order

时间:2010-07-19 08:40:58

标签: java spring validation annotations

我想问一下,是否可以在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.

这不是随机的,因为每次都会保留此顺序。这不是按字母顺序或任何其他顺序...我真的被卡住了。有人可以帮忙吗?

2 个答案:

答案 0 :(得分:3)

SpringModules是一个死的项目,它不再受支持。如果您需要在Spring中使用JSR-303验证支持,我建议您使用参考实现Hibernate Validatorwire it up like so

话虽如此,这可能无法解决您的问题,但至少您将使用最新的库,可能会更容易修复。

答案 1 :(得分:2)

我发现使用@GroupSequence可以工作,虽然它不是一个合适的解决方案。

请参阅http://www.jroller.com/eyallupu/entry/jsr_303_beans_validation_using以获取快速教程。