gpt4 book ai didi

java - Vaadin 表单 commit() 方法?

转载 作者:太空宇宙 更新时间:2023-11-04 12:18:39 25 4
gpt4 key购买 nike

我在理解 Vaadin 中的 commit() 方法的真正作用时遇到一些问题。我阅读了文档,做了一些示例,但我误解了它的实际含义。

这是代码片段:

if (source == save) {
/* If the given input is not valid there is no point in continuing */
if (!isValid()) {
return;
}

if (newContactMode) {
/* We need to add the new person to the container */
Item addedItem = app.getDataSource().addItem(newPerson);
/*
* We must update the form to use the Item from our datasource
* as we are now in edit mode
*/
setItemDataSource(addedItem);
//System.out.println(app.getDataSource().getItem(addedItem));
newContactMode = false;
}

commit();
setReadOnly(true);
}

如果我这样做,那么我不会添加在数据源表单(在容器中)中添加的一些数据。这些条目未显示在表中。

另一段代码:

if (source == save) {
/* If the given input is not valid there is no point in continuing */
if (!isValid()) {
return;
}
commit();//changing place of this method
if (newContactMode) {
/* We need to add the new person to the container */
Item addedItem = app.getDataSource().addItem(newPerson);
/*
* We must update the form to use the Item from our datasource
* as we are now in edit mode
*/
setItemDataSource(addedItem);
//System.out.println(app.getDataSource().getItem(addedItem));
newContactMode = false;
}
setReadOnly(true);
}

此版本工作正常。我可以得出结论,表单中的此方法确实会阻止与此表单的“DataSource”(包含数据源中的项目)的所有交互。但我需要通过调用另一个类和 Container 的 addItem() 来直接执行此操作。我还没有找到关于 commit() 方法的任何好的解释。

我一直在用这个tutorial ,也许有人会从教程中认出这个 GUI。

GUI

最佳答案

我明白出了什么问题。在第二个片段中,我通过调用 commit() 使用表单中的数据填写了 newPerson 实例。在第一个片段中,我写入了空数据,因为我之前没有调用方法 commit() 并且绑定(bind)对象为空(尚未写入)。

关于java - Vaadin 表单 commit() 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39102217/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com