如何在可编辑表中的字段上进行业务验证?

时间:2015-05-05 16:44:35

标签: vaadin vaadin7

这是交易:我有一个使用BeanItemContainer“MyBean”的表。 “MyBean”并不真正相关,它只包含1个String和2个Date对象。 但是必须允许用户更改容器中每个MyBean实例的值。

要做到这一点,这很容易,只需要做myTable.setEditable(true)。或者稍微复杂一点,创建一个返回Field的Table.ColumnGenerator(添加一个ValueChangeListener来推送bean中的新值)。 使用Table.ColumnGenerator,我还可以为每个Field添加特定的验证,这太棒了! 这样做的目的是将字段呈现为“错误模式”。

但是我无法做到:在用户点击“保存”按钮并检索相应的字段以调用方法setComponentError(...)之后进行业务验证。

只能进行基本验证(仅限整数,最大值,日期时间范围......),但对于更复杂的验证(业务要求),我不知道......

我该怎么做?

1 个答案:

答案 0 :(得分:0)

您可以通过实施Validator界面编写自己的自定义验证程序,并在其中实现自定义业务逻辑。

public class MyValidator implements Validator {

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

}