2011-04-26 42 views
0

我是初學者提到的技術,如果我問一些愚蠢的問題,請原諒我。Flex/Spring/Hibernate驗證 - spring驗證器和ExceptionTranslator

我在我的應用程序中有驗證代碼的設計問題。我經常打破DRY原則。此外,驗證以某種方式讓我感到困惑。我總是在質疑自己在哪裏放置一些驗證的東西,檢查vs未檢查,傳播什麼,驗證什麼等等。但是,還有一些關於提到的東西的話題,所以我將集中討論F/S/H技術的具體問題。

例如,我的DAO 保存方法有以下驗證:

public void save(Person p){ 
    if(p==null) throw IllegalArgumentException("Person object is required..."); 
    //... 
} 

完全一樣的驗證我也有刪除,更新和讀取DAO層的方法。

我正在尋找一些解決方案與com.springframework.validation.Validator接口,但我碰到錯誤代碼傳播到Flex客戶端的問題。 也許,我可以做這樣的事情......

public void save(Person p){ 
    BeanPropertyBindingResult err = new BeanPropertyBindingResult(p,"Errors");    
    //myValidator will be injected 
    myValidator.validate(p,err); 
    //... 
    throw MyException("Message",err); 
    //... 
} 

我不知道這是好辦法。用什麼驗證方法來儘量減少這種驗證碼的重複。如果有人能給我一些方向,提示,鏈接,我會感激。

回答