我有一个问题。如果我使用" 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.");
}
}
});
有代码: github
所以,一种方法可以解决它吗?
抱歉,我的英语很差。答案 0 :(得分:0)
buffered
的想法是保持bean完好无损,只用commit
编写。所以你的测试会读取bean的当前值(它保存初始值,这是正常的,因此没有验证错误)。如果您使用错误的数据提交一次,您将看到,您再也无法提交,因为现在验证会触发。
解决此问题的一种方法是记住此案例的字段,并比较name
和id
字段的当前值。在提交之前,它们是用户输入的唯一来源。