2011-06-21 54 views
5

在使用CDI的最初幾天,我使用faces-redirect = true導航到長時間運行 對話的頁面,所以我有一個URL,如..myPage.xhtml?cid = 1。CDI /焊接 - 在結束對話後如何處理瀏覽器頁面刷新?

在某些時候我結束了談話,我的意思是這必須是一個合理的事情做 或者你可能會使用會話範圍?無論如何,我結束了談話,然後 用戶點擊F5,然後當然這會導致「對話未找到」錯誤,因爲cid = 1 不存在。

任何人都可以建議如何解決這個問題?我正在使用Steven Verborgh ViewScoped實現並簡單地使用對話作用域bean來在頁面之間傳遞參數 。因此,我有例如2個@ViewScoped bean,其中每個都返回頁面1 & 2. I @Inject @ConversationScoped ParameterBean到視圖作用域bean中。我從 頁面1調用的操作方法中開始了 對話(parameterBean.getConversation()。begin())。在第2頁的preRenderView事件中,我將參數 的屬性引用到頁面2支持bean實例變量並結束對話,它完成了它的工作,不再需要。

除了F5問題,它工作正常。如果有人有任何建議,我會很感激, 希望我不會錯過真正明顯的東西。我認爲有沒有得到 遠離重定向。

謝謝。

回答

4

沒有解決方法。默認的@ConversationScoped完全被破壞。我使用的是MyFaces CODI中的@ConversationScoped。它解決了您可以通過標準範圍獲得的所有問題。

相關問題