OValJava 對象驗(yàn)證框架
OVal 是一個(gè)可擴(kuò)展的Java對象數(shù)據(jù)驗(yàn)證框架,驗(yàn)證的規(guī)則可以通過配置文件、Annotation、POJOs 進(jìn)行設(shè)定??梢允褂眉?Java 語言、JavaScript 、Groovy 、BeanShell 等進(jìn)行規(guī)則的編寫。
允許用戶:
- 輕松按需驗(yàn)證對象,
- 為類字段和getter方法的返回值指定驗(yàn)證約束,
- 基于某些EJB3 JPA批注(即,所有要求非空值的字段批注)驗(yàn)證對象,
- 通過注釋,POJO和/或簡單的XML文件配置約束,
- 使用諸如JavaScript,Groovy, BeanShell,OGNL或MVEL的腳本語言來表達(dá)約束
- 輕松創(chuàng)建自定義約束,以及
- 開發(fā)新的約束配置機(jī)制。
示例代碼:
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;
}
}
評論
圖片
表情
