2010-05-14 76 views
2

這是一個一直困擾着我的問題。我的應用程序在我們的UI框架中使用ICEFaces,而在依賴注入中使用Spring 2.5。另外,Spring實際上保留了所有的支持bean,而不是ICEFaces框架,所以我們的faces-config基本上是空的。如何在請求範圍內的bean之間傳遞參數

導航甚至沒有真正通過導航規則處理。我們使用window.open執行手動重定向到新窗口。

我們的所有bean都在我們的appContext文件中被定義爲請求範圍。我擁有由BackingBeanABC支持的Page ABC。在該支持bean中,我有一個參數說:

private Order order; 

然後我有頁XYZ支持BackingBeanXYZ。當我從頁面ABC重定向到頁面XYZ時,我想將'訂單'屬性從ABC轉移到XYZ。問題是因爲一切都是請求範圍的,我正在執行重定向,我正在失去'description'的價值。

在重定向期間,必須有一種更簡單的方式在請求範圍內的bean之間傳遞對象。任何人都可以幫助解決這個問題

回答

1

會話範圍解決了您的問題。

您可以在Spring的reference documentation中閱讀更多關於它的信息。

另一種替代方法是直接在HttpSession對象上設置訂單對象。我會首選,並且只有你的服務,控制器和存儲庫由Spring管理。

+0

確實如此,但我不想用它作爲選項。我們應用中的所有managedbeans都是請求範圍。 – sma 2010-05-14 15:24:45

+0

爲什麼?你是否試圖讓一個請求範圍的bean表現得像一個會話範圍的bean? – Espen 2010-05-14 15:26:38

+0

我知道Session在這裏工作,但這不是我在這裏的瘋狂場景。我需要的是一個比請求長但小於會話的範圍。它構建的是Spring Webflow和Seam的Conversation範圍(這兩者都不是我允許的 - 不要問)。 – sma 2010-05-14 15:34:36

1

創建請求作用域bean可以通過FacesContext引用的單個會話作用域bean。

+0

我實際上做了一段時間,並因此而遭到誹謗。我可能會回到它。它似乎工作正常。 – sma 2010-05-14 18:57:13

+0

將會話數據放入會話上下文中是否存在錯誤?美好時光! – Naganalf 2010-05-15 00:46:47