是否可以在"操作"方法完成之前"更新"Ui 组件?



我有一个命令按钮,它调用一个Action方法并更新其他相关的UI组件:

<p:commandButton  value="Commit" action="#{controller.persist}" process="@this" update=":form:buttons :dateCommittedText" />

在Action方法中,值被持久化到数据库中:

public void persist() {
    databaseService.save(some item);
    status = "Committed";
}

是否有可能在项目完成持久化到数据库之前更新update=":form:buttons :dateCommittedText" ?

当前数据库事务需要几秒钟,这个暂停让我的应用程序感觉非常无响应。

您可以使用p:remoteCommand

<p:commandButton  value="Commit" action="#{controller.onlyMinorChanges}" 
    process="@this" update=":form:buttons :dateCommittedText" 
    onsuccess="doAfter()"/>
<p:remoteCommand name="doAfter" action="#{controller.persist}"/>  

在你的豆子里:

public void onlyMinorChanges() {
    status = "Committed";
}
public void persist() {
    databaseService.save(some item);
}

无关的

:

关于无响应,看看这个AJAX状态

不确定我是否理解,但这就是如何从bean更新组件。

FacesContext.getCurrentInstance().getPartialViewContext().getRenderIds().add(":componentId");

相关内容

  • 没有找到相关文章

最新更新