2011-02-01 61 views
0

任何人都可以提出一個很好的驗證框架,我們可以在Java應用程序中使用? 有我們的申請表格,但我們傳球檢索和發送數據到多個系統。 一旦我們得到這個數據,我們希望把它改造成一個POJO,並執行對POJO一些驗證。 一個驗證框架,它允許你把你的驗證規則到一個XML或平面文件將是理想的爪哇 - 驗證框架

任何幫助是極大的讚賞

感謝 達明

+2

http://stackoverflow.com/questions/397852/java-validation-frameworks – oluies 2011-02-01 20:35:16

回答

3

退房Hibernate Validator

默認的元數據源是註釋,可以通過使用XML驗證描述符來覆蓋和擴展元數據。

1

Java EE 6通過註釋(例如@NotNull,@Size等)具有非常強大的驗證機制。看看Java Bean Validation。最好的部分是,你可以定義自己的這種註釋這將做任何可能需要的自定義驗證。

1

Ujorm framework基於鍵值的域對象提供特殊的驗證那裏的主要特點是:

  • 驗證調用價值書面方式,事件總是
  • 驗證可以使用AND/OR操作
  • 被連接
  • 驗證器分配給鍵在一個JavaBean使用驗證器的任選

樣品:

import static org.ujorm.Validator.Build.*; 
public class ValidBo extends AbstractUjo implements Serializable { 

    /** Factory */ 
    private static final KeyFactory<ValidBo> f = newFactory(ValidBo.class); 
    /** Keys: */ 
    public static final Key<ValidBo, Long> PID = f.newKey(notNull()); 
    public static final Key<ValidBo, Integer> CODE = f.newKey(between(0, 10)); 
    public static final Key<ValidBo, String> NAME = f.newKey(regexp("T.*T")); 
    public static final Key<ValidBo, Double> CASH = f.newKey(min(0.0).and(notNull())); 

    static { 
     f.lock(); 
    } 

    // Setters: 
    public void setPid(Long pid) { 
     PID.setValue(this, pid); 
    } 

    public void setCode(Integer code) { 
     CODE.setValue(this, code); 
    } 

    public void setName(String name) { 
     NAME.setValue(this, name); 
    } 

    public void setCash(Double cash) { 
     CASH.setValue(this, cash); 
    } 

    // Getters ... 
} 

查看documentation瞭解更多信息。

1

還有Oval,其中約束可以用註解(@NotNull,@MaxLength)的POJO或XML聲明。您也可以創建自己的自定義約束。