这是交易:我有一个使用BeanItemContainer“MyBean”的表。 “MyBean”并不真正相关,它只包含1个String和2个Date对象。 但是必须允许用户更改容器中每个MyBean实例的值。
要做到这一点,这很容易,只需要做myTable.setEditable(true)。或者稍微复杂一点,创建一个返回Field的Table.ColumnGenerator(添加一个ValueChangeListener来推送bean中的新值)。 使用Table.ColumnGenerator,我还可以为每个Field添加特定的验证,这太棒了! 这样做的目的是将字段呈现为“错误模式”。
但是我无法做到:在用户点击“保存”按钮并检索相应的字段以调用方法setComponentError(...)之后进行业务验证。
只能进行基本验证(仅限整数,最大值,日期时间范围......),但对于更复杂的验证(业务要求),我不知道......
我该怎么做?
答案 0 :(得分:0)
您可以通过实施Validator界面编写自己的自定义验证程序,并在其中实现自定义业务逻辑。
public class MyValidator implements Validator {
void validate(Object valueToValidate) throws Validator.InvalidValueException {
//Your Business logic
}
}