jsf 向导选项卡将新记录插入数据表并移动到下一个选项卡

jsf wizard tabs inserting a new record to a dataTable and moving to the next tab

我有一个 prime faces 向导,它有 3 个选项卡,每个选项卡内都有一个文本字段和一个带有添加按钮的数据表,这个添加按钮将字段中的信息添加到我的数据库中并显示在dataTable,当我添加一条新记录时,向导会移动到下一个选项卡,我的问题是当我添加新记录时,它不会立即显示在 dataTable 中,但我必须重新加载我的服务器 (tomcat),但是如果我编辑了一条现有记录并在第二个选项卡中添加了一条新记录,它立即显示在数据表中。

任何关于发生的事情的建议我尝试了很多方法将向导从一个选项卡移动到另一个选项卡但没有成功,这是我使用的方法:

使用Java: 1-

Wizard wizard = (Wizard) FacesContext.getCurrentInstance().getViewRoot().findComponent("frmExamBank:tabsId");
    wizard.setStep("tab2");
    RequestContext.getCurrentInstance().update("frmExamBank");

2-

RequestContext context = RequestContext.getCurrentInstance();
context.execute("PF('wiz').next()");

使用 p:commandButton 个属性:

oncomplete="PF('wiz').loadStep('tab3',true) 

谁能解释一下我的属性中的 true 是什么意思?以及关于我做错了什么的任何建议?

当向数据表成功添加新记录时,您必须触发移动到下一个选项卡,因此正如您在问题的第二个解决方案中提到的,您应该将其添加到添加按钮:

public void addRecord() {

    RequestContext context = RequestContext.getCurrentInstance();
    context.execute("PF('wiz').next()");

}

知道 "wiz" 是向导的 widgetVar,此解决方案应该有效,否则问题出在添加按钮中,确保您正在更新选项卡。