簡體   English   中英

JSF,如何在另一個頁面/支持bean中設置屬性,然后導航到該頁面?

[英]JSF, How to set a property in a different page/backing bean and then navigate to that page?

我正在使用JSF 2.0,並嘗試在我的App中的不同頁面之間傳遞值。

設置如下:我有一個名為userSelect的頁面,該頁面具有支持bean userSelectBacking。 在此頁面上,我顯示可以使用h:commandbutton進行選擇和提交的用戶列表,提交頁面時,導航將轉到userEdit頁面。

我有一個名為userEdit的頁面,該頁面具有一個后備bean userEditBacking,它顯示用戶的信息並允許對該用戶進行編輯。

我想將從userSelect頁面選擇的用戶傳遞到userEdit頁面。 我當前正在使用f:setPropertyActionListener從userSelect頁面在userEdit支持中設置用戶,但是當我導航到userEdit頁面時,它將丟失我設置的信息。

有沒有一種方法可以在兩個頁面/備用bean之間傳遞值?

謝謝

我目前正在使用f:setPropertyActionListener從userSelect頁面的userEdit支持中設置用戶

它應該工作。

但是,當我導航到userEdit頁面時,它會丟失我設置的信息。

如果數據加載邏輯錯誤,或者您在請求bean范圍之后觸發重定向,就會發生這種情況。

要修復數據加載邏輯,只需確保在請求范圍內的bean的情況下,在后續請求中保留相同的數據模型。 通常,您為此使用bean的構造函數或在getter中進行延遲加載。 如果這不是一個選擇,那么您需要將bean放在更大的范圍內,例如@ViewScope@SessionScope

要解決重定向問題,要么不觸發重定向(即從導航案例中刪除<redirect/> ,要么不調用ExternalContext#redirect() ),或者將bean放在更大的范圍內。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM