是否可以在'Action'方法完成之前'更新'Ui组件?

Jro*_*sky 2 jsf primefaces

我有一个Command Button来调用Action方法并更新其他相关的UI组件:

<p:commandButton  value="Commit" action="#{controller.persist}" process="@this" update=":form:buttons :dateCommittedText" />
Run Code Online (Sandbox Code Playgroud)

在Action方法中,值持久保存到数据库:

public void persist() {
    databaseService.save(some item);
    status = "Committed";
}
Run Code Online (Sandbox Code Playgroud)

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

目前数据库事务需要几秒钟,这个暂停使我的应用程序感觉非常反应迟钝.

Dan*_*iel 5

你可以用p:remoteCommand它,

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

<p:remoteCommand name="doAfter" action="#{controller.persist}"/>  
Run Code Online (Sandbox Code Playgroud)

在你的bean中:

public void onlyMinorChanges() {
    status = "Committed";
}

public void persist() {
    databaseService.save(some item);
}
Run Code Online (Sandbox Code Playgroud)

无关:

关于反应迟钝,请看看这个AJAX状态