OValJava 对象验证框架
OVal 是一个可扩展的Java对象数据验证框架,验证的规则可以通过配置文件、Annotation、POJOs 进行设定。可以使用纯 Java 语言、JavaScript 、Groovy 、BeanShell 等进行规则的编写。
允许用户:
- 轻松按需验证对象,
 - 为类字段和getter方法的返回值指定验证约束,
 - 基于某些EJB3 JPA批注(即,所有要求非空值的字段批注)验证对象,
 - 通过注释,POJO和/或简单的XML文件配置约束,
 - 使用诸如JavaScript,Groovy, BeanShell,OGNL或MVEL的脚本语言来表达约束
 - 轻松创建自定义约束,以及
 - 开发新的约束配置机制。
 
示例代码:
private static class TestEntity
{
  @Min(1960)
  private int year = 1977;
  @Range(min=1, max=12)
  private int month = 2;
  @ValidateWithMethod(methodName = "isValidDay", parameterType = int.class)
  private int day = 31;
  private boolean isValidDay(int day)
  {
    GregorianCalendar cal = new GregorianCalendar();
    cal.setLenient(false);
    cal.set(GregorianCalendar.YEAR, year); 
    cal.set(GregorianCalendar.MONTH, month - 1);
    cal.set(GregorianCalendar.DATE, day);
    try {
      cal.getTimeInMillis(); // throws IllegalArgumentException
    } catch (IllegalArgumentException e) { 
      return false;
    }
    return true;
  }
}
评论
