2009-10-06 85 views
0

我有一個頁面,用戶輸入數據並點擊「保存」按鈕。 數據被保存到數據庫,並且我希望頁面自行反射以反映數據庫中的新數據。 我正在使用託管bean,如何讓頁面自行刷新?ICEFaces頁面刷新

回答

3

有哪些,我想起兩個選項:

  1. 利用JSF導航規則
  2. 使用渲染屬性

廣告1)

定義點擊「保存」後您將導航到的頁面。 爲此,您實際將數據保存到數據庫的操作將進入定義爲actionListener的方法,或者如果您希望根據保存過程的結果將下一頁作爲action

導航規則將在faces-config.xml中 如果沒有導航規則規定動作比賽中定義,當前頁面將重新顯示(雖然從經驗中我做了這個刷新是不同的,以一個共同的HTML刷新) 。

廣告2)

如果你已經有的列表或設置在bean的模型在同一頁上的數據表,更改會自動您使用的immediate關鍵字顯示除了在保存按鈕上設置爲true。

此外,你可能會考慮與您所選擇的內容,其具有rendered屬性設置爲你的bean一個布爾值,它會在保存過程中被觸發,因此讓內容的面板只打保存後顯示。

1

您可以使用IceFaces的AJAX推送功能。這會初始化客戶端的重新呈現。

推薦的(和最簡單的)方法是使用SessionRender API在託管bean:

SessionRenderer.addCurrentSession("myGroup"); 
SessionRenderer.render("myGroup"); 

諮詢ICEfaces的開發者指南,瞭解更多信息。

0

這取決於你是如何做到的。

當您單擊按鈕時,JSF生命週期中拉開帷幕,如果您揭開序幕,保存到該按鈕的動作在數據庫中,無論值在您的管理bean的更新應該在頁面自動的反映。 JSF生命週期會自動爲您完成此任務,並且icefaces可以使用AJAX橋來完成此任務,因此您不需要執行頁面重新加載。

如果您在異步工作,您需要使用Push API icefaces提供給您。從服務器端啓動生命週期。