2013-04-08 68 views
1

我有一個調用的操作方法和更新等相關UI組件的命令按鈕:'Action'方法結束之前是否可以'更新'Ui組件?

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

裏面的操作方法,值保存到數據庫:

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

是否有可能爲update=":form:buttons :dateCommittedText"在項目完成之前更新被保存到數據庫?

當前數據庫事務處理需要幾秒鐘的時間,而這一停頓讓我的應用程序感覺非常反應遲鈍。

回答

4

您可以使用p:remoteCommand爲,

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

<p:remoteCommand name="doAfter" action="#{controller.persist}"/> 

而且在你的bean:

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

public void persist() { 
    databaseService.save(some item); 
} 

無關:

有關反應遲鈍,看看這AJAX Status

+0

謝謝!這正是我所期待的 – Jrokisky 2013-04-08 20:56:29

0

不知道我是否理解,但這是如何從bean更新組件。

FacesContext.getCurrentInstance().getPartialViewContext().getRenderIds().add(":componentId"); 
相關問題