Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 验证vaadin 7网格中的列值_Java_Vaadin_Vaadin7_Vaadin Grid - Fatal编程技术网

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. 
每次我都会将此新名称设置为源对象。因此,一旦验证成功,字段值将保持不变,因为我们将其设置为对象