2012-07-25 60 views
0

當服務器進程完成或任何其他時間對於此事,我將如何更新UI組件?更新來自服務器事件的ui組件

可以\我應該

  • 擴展UI組件及其註冊某種EventListener的?
  • 綁定後臺bean中的UI組件?
  • 使用一些新的PrimePush功能?
  • 別的東西?

如果任何人都可以引導我在正確的方向,我會很感激。

事例一個

服務器過程結束並更新數據庫。
我想自動 根據新信息更新一個DataTable與新行。
我不想輪詢新數據。

編輯

我想從一個EJB無狀態Bean

+0

的可能的複製[如何選擇服務器推送異步改變由JSF創建的HTML頁面?](https://stackoverflow.com/questions/3787514/how-can-server-push-asynchronous-changes- to-a-html-page-created-by-jsf) – Kukeltje 2017-08-28 11:06:38

回答

0

你可以用你的commandButton或任何其他你的更新屬性更新UI組件(一primefaces數據表)使用。

像這樣的東西應該工作

<p:dataTable value="#{backer.bean}" id="table"> 
    // columns with data 
</p:dataTable> 

<p:commandButton actionListener="#{backer.updateDB}" update="table" /> 
+0

如何激發「點擊」/從EJB中激發commandButton?你是否正確地閱讀了這個問題?如果是的話,你可以擴展這個解決方案。 – feargal 2012-08-09 14:26:11

1

您正在使用的primefaces的版本,你沒有提及,但你可以從備份豆與addpartialupdatetarget更新組件。

RequestContext context = RequestContext.getCurrentInstance(); 
context.addPartialUpdateTarget("myForm:myComponent"); 
+0

對不起,請看編輯。 – feargal 2012-08-09 15:19:31

+0

如果在客戶端發起的請求之外,requestContext將爲null – Kukeltje 2017-08-28 11:07:34