2013-02-13 59 views
1

我具有覆蓋它的getConverter方法添加一個約達時間轉換器代替一個TextField:空檢查手動轉換的TextField值

new TextField<P>(id) { 
    @Override 
    public <P> IConverter<P> getConverter(Class<P> type) { 
     return (IConverter<P>) new JodaDateTimeConverter(); 
    } 
}; 

轉換器返回null如果輸入是無效的。不過,我希望能夠標誌作爲需要這個領域,我不知道該怎麼做:

  • textField.isRequired(真)不起作用,因爲需要檢查轉換前完成。這對於非空而無效的輸入不起作用。
  • textField.add(.. some validator ..)不起作用,因爲如果轉換器返回null,則不會調用驗證程序。

我真的沒有看到根據需要標記我的日期字段的方法。你知道怎麼做嗎?可能我的方法根本不適合?

回答

1

如果添加INullAcceptingValidator而不是常規的,則也會調用空值。

將您的驗證器歸類爲validateOnNullValue()也可能有幫助。

從JavaDoc中:

表示是否要驗證的值是否爲空。如果值爲空,那麼通常需要 來跳過驗證,除非我們 要確保該值實際上爲空(一種罕見的用例)。 對此進行擴展並希望確保其值爲空​​的驗證程序應覆蓋此方法並返回true。

+0

Exactely我在找什麼。非常感謝! – 2013-02-13 16:07:26