Java 验证vaadin 7网格中的列值
我不熟悉瓦丁框架。尝试使用Java 验证vaadin 7网格中的列值,java,vaadin,vaadin7,vaadin-grid,Java,Vaadin,Vaadin7,Vaadin Grid,我不熟悉瓦丁框架。尝试使用grid.getEditorFieldGroup().addCommitHandler()的preCommit()方法验证网格列。当我第一次验证时,验证成功,错误指示以及错误消息成功显示。但是,如果我立即保存,在到达preCommit()方法时,相应的值将变为null。如何解决这个问题 我试过使用次要对象。所以我认为这不会影响源对象。但这对我没有帮助 grid.getEditorFieldGroup().addCommitHandler(新的FieldGroup.Com
grid.getEditorFieldGroup().addCommitHandler()的preCommit()
方法验证网格列。当我第一次验证时,验证成功,错误指示以及错误消息成功显示。但是,如果我立即保存,在到达preCommit()方法时,相应的值将变为null。如何解决这个问题
我试过使用次要对象。所以我认为这不会影响源对象。但这对我没有帮助
grid.getEditorFieldGroup().addCommitHandler(新的FieldGroup.CommitHandler()){
@凌驾
公共无效预提交(FieldGroup.CommitteEvent CommitteEvent)抛出
FieldGroup.CommitException{
BeanItem项=(BeanItem)
committeevent.getFieldBinder().getItemDataSource();
MyClass qm=(MyClass)item.getBean();
getColumn(“myColumn”)。
setEditorField(generateMachineCode(qm.myColumnValue());
}
专用字段generateMachineCode(字符串machineCode){
TextField editabletextfield=新建TextField();
EditableTextField.setEnabled(真);
如果(StringUtils.isNotEmpty(machineCode)&&!machineCode.equals(“12345”)){
addValidator(新的StringLengthValidator(“它必须是6
字符“、6、6、假”);
}
}
}
我通过从列中获取输入的新值来代替preCommit()方法,从而克服了这个问题。请参阅下面的
TextField nameField = (TextField) grid.getColumn("name").getEditorField();
nameField .getValue(); // new name.
每次我都会将此新名称设置为源对象。因此,一旦验证成功,字段值将保持不变,因为我们将其设置为对象。我通过从列中获取输入的新值来代替preCommit()方法来克服此问题。请参阅下文
TextField nameField = (TextField) grid.getColumn("name").getEditorField();
nameField .getValue(); // new name.
每次我都会将此新名称设置为源对象。因此,一旦验证成功,字段值将保持不变,因为我们将其设置为对象