2012-06-26 35 views
2

我有關於特定@Request範圍bean的維護狀態的問題。我有一個Seam實體列表請求範圍組件。並且在一個特定的請求後,我希望它保持其狀態,而不是刷新,a4j:keepAlive做解決方案,但不幸的是使用a4j:keepAlive銷燬視圖內的一些其他功能,所以改變整個頁面,我只是忽略a4j:keepAlive如何保持請求範圍bean的狀態,而不使用richfaces 3和seam 2中的a4j:keepAlive?

我的問題是,如何在不使用a4j:keepAlive的情況下維護此特定場景,並且不將我的組件變爲@SessionScope@ConversationScope

謝謝先進。

回答

2

如果您使用JSF 2爲您的網站的發展,這將是更好地使用RichFaces 4. RichFaces 3.3專門用於支持JSF 1.2主要然後擴展到支持JSF 2,但它並沒有利用JSF 2的優勢。另一方面,在JSF 2中構建了一個思路。RichFaces 4.x。從RF 3.3轉換到RF 4是明智的做法,但如果你仍想堅持到RF 3.3,您應該將您的bean的範圍更改爲ViewScope並停止使用a4j:keepAlive

更多信息:

編輯:

了給定的問題,您應該保存的數據會話,並恢復它時,你的請求Managed Bean的創建,做您的數據將通過您的視圖保留下來,但您必須手動完成這項工作(也很難維護)。

如果您的託管bean已與JSP /你使用的facelet,則不要使用a4j:keepAlive標籤組件綁定屬性,而不是@KeepAlive(ajaxOnly=false)註釋添加到您的請求,託管bean來保存你的bean的整個狀態(即使是綁定組件)。

+0

我編輯了我的問題。 btq即時通訊使用jsf 1.2。 –

+0

@EllieFabrero我已經更新了我的答案。如果你公開你正在做的事情的代碼和提供準確答案的缺陷,會更好。 –

+0

謝謝你的回答,我很感激。我想我會嘗試你的建議。我正在考慮將數據存儲在會話中。順便說一句,我可以改變一個bean的某個範圍,或者它是固定的嗎?在我的場景中,我有一個表綁定到具有排序表的能力的實體列表,但是例如,在發送請求和reRender表之後,該表回到其舊的排序,因此我想在請求之後維護它。 –

相關問題