2012-02-20 79 views
1

我相信這對於玩大師來說是無可挑剔的,但我找不到方法。玩多場驗證

我有代表貨幣價值的整體及小數部分的兩個字段類:

@Required 
@Min(0) 
private Integer whole; 

@Range(min = 0, max = 99) 
private Integer decimal; 

現在,我不想讓一個值,整數和小數部分爲0

我可以使用註釋來指定這個嗎?如果沒有,我在哪裏掛鉤我的驗證代碼?

回答

1

嗯,我不是大師,但我認爲你可以實現你想要的定義自定義檢查:

@CheckWith(WholeCheck.class) 
private Integer whole; 

@CheckWith(DecCheck.class) 
private Integer decimal; 

    static class WholeCheck extends Check { 
     public boolean isSatisfied(Object obj, Object whole) { 
      boolean satisfied = true; 
      MyObj myobj = (MyObj) obj; 
      if(((Integer)whole) == 0 && myobj.decimal ==0){ 
       satisfied = false; 
       setMessage("whole and decimal cannot be 0"); 
      } 

      return satisfied; 
     } 
    }