Validation [vaadin]在一个字段中添加一个验证器,该字段依赖于表单中的另一个字段;表格.受挫(真实)&引用;

Validation [vaadin]在一个字段中添加一个验证器,该字段依赖于表单中的另一个字段;表格.受挫(真实)&引用;,validation,vaadin,custom-validators,Validation,Vaadin,Custom Validators,我有一个问题。那就是如果我使用“form.setBuffered(true);”,我不能这样验证: field.addValidator(new Validator() { @Override public void validate(Object o) throws InvalidValueException { //FIXME There is the problem.if i set "form.setBuffered(true);",I can't get

我有一个问题。那就是如果我使用“form.setBuffered(true);”,我不能这样验证:

field.addValidator(new Validator() {
    @Override
    public void validate(Object o) throws InvalidValueException {
        //FIXME There is the problem.if i set "form.setBuffered(true);",I can't get latest testBean.
        if (testBean.getId().equals(testBean.getName())) {
            throw new Validator.InvalidValueException("id can't equals name.");
        }
    }
});
代码如下:

那么,有什么办法可以解决这个问题


对不起,我的英语很差。

缓冲
的想法是保持bean完整,只使用
commit
编写它。因此,那里的测试读取bean的当前值(它保存初始值,这是正常的,因此没有验证错误)。如果您用错误的数据提交一次,您将看到,您再也不能提交了,因为现在验证触发了


解决这个问题的一种方法是记住本例中的字段,并比较
name
id
字段的当前值。提交前,它们是用户输入的唯一来源。

好吧,因为没有其他答案。@Fanappelin如果您对答案不满意,请不要接受它。也要考虑评论,你有什么问题。