使用Hibernate Validator进行交叉字段验证(3.1.0.GA)

时间:2010-01-15 17:14:01

标签: seam richfaces hibernate-validator

我们如何使用hibernate验证器3.1.0.GA

强制执行交叉字段验证

创建表用户(id,start_date,end_date,...) 例如大学毕业完毕日期为学生应大于毕业开学日期

我们如何强制执行此操作,以便在保存/更新操作的UI中显示验证消息。 UI使用JSF,Richfaces

构建

4 个答案:

答案 0 :(得分:2)

您可以通过创建custom validator.来完成此操作。the documentation中有更多信息。

答案 1 :(得分:0)

试试这个:

public class User {

  private Date startDate = null;
  private Date endDate = null;

  @SuppressWarnings("unused")
  @AssertTrue(message="college graduation finishing date for a student should be greater than the graduation start date")
  private boolean dateValidation() {
    return this.startDate < this.endDate;
  }
}

答案 2 :(得分:0)

Cross field validation with Hibernate Validator (JSR 303)

中查看我的重复问题(和答案)

简而言之,创建一个自定义类级别验证器,将类级别ConstraintViolation与要验证的特定字段相关联。

答案 3 :(得分:0)

这种方法

@SuppressWarnings("unused")
     

@AssertTrue(message="college graduation finishing date for a student should be greater than the graduation start date") private boolean dateValidation() { return this.startDate < this.endDate; }

有效,它需要符合标准bean规范,这意味着get / set /或“is”前缀。 isDateValid()可以工作 -