Spring 验证注解顺序

Pet*_*iev 5 java validation spring 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
}
Run Code Online (Sandbox Code Playgroud)

我在页面顶部显示我的错误消息,如下所示:

<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>
Run Code Online (Sandbox Code Playgroud)

问题是不管我的错误消息是按以下顺序显示的:

* Fill you last name.
* Fill you password.
* Fill your emailaddress.
* Fill you password again.
* Select your gender.
* Fill your first name.
Run Code Online (Sandbox Code Playgroud)

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

ska*_*man 3

SpringModules 是一个死项目,不再受支持。如果您需要 Spring 中的 JSR-303 验证支持,我建议使用参考实现Hibernate Validator,并像这样连接它

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