2015-05-05 29 views
0

這是處理:我有一個表使用了「MyBean」的BeanItemContainer。 「MyBean」並不真正相關,它只包含1個String和2個Date對象。 但是,用戶必須被允許爲我的容器中的每個MyBean實例更改這些值。如何在可編輯表中的字段上進行業務驗證?

要做到這一點,很簡單,只需要myTable.setEditable(true)。或者更復雜一點,創建一個返回一個Field的Table.ColumnGenerator(添加一個ValueChangeListener來在Bean內部推送新的值)。 使用Table.ColumnGenerator,我也能夠爲每個字段添加特定的驗證,這太棒了! 這樣做的目的是以「錯誤模式」呈現字段。

但有些事情我無法做到:在用戶點擊「保存」按鈕並檢索相應的字段以調用setComponentError(...)方法後進行業務驗證。

只有基本驗證可以做到(整數而已,最大值,日期時間範圍,...),但對於更復雜的驗證(業務需求),我不知道......

我該怎麼辦那?

回答

0

您可以通過實現Validator接口來編寫自己的自定義驗證器,並在其中實現自定義業務邏輯。

public class MyValidator implements Validator { 

    void validate(Object valueToValidate) throws Validator.InvalidValueException { 
     //Your Business logic 
    } 

} 
+0

我知道但它總是有限的。我的表格包含從X時間到Y時間(我的表格的一行)使用的資源。我必須驗證沒有資源被同時使用。一次只有一個。但我發現了另一種方式來做到這一點:我的表格包含字段元素。 :-) – koD

相關問題