2014-03-28 120 views
0

我嘗試新的「流」功能。 它看起來非常有希望,因爲它可以讓你有一個跨越多個相關視圖的託管bean。Flowscope和get請求

不幸的是,與post請求才有效。

有沒有辦法進入使用GET請求流?我發現的所有例子都是在流程之外使用起始表單。我想輸入點擊Primefaces菜單欄中的項目,並且據我所知,我只能在那裏放置一個鏈接...

假設用戶在一個頁面中間流。如果發送了對流中間的視圖的獲取請求並且流不再活躍(或者將流信息從查詢字符串參數中刪除),則服務器響應一個錯誤的錯誤頁面。在這種情況下,是否可以將其重定向到流程的第一個節點

通過流動的視圖節點導航我可以看到在查詢字符串其中最有可能是一個ID的特殊參數。有沒有可能隱藏這個細節?

感謝 菲利波

回答

0

是的,只是如果流名爲流1,你可以寫這樣的:

<h:link value="Enter Flow" outcome="flow1"/> 

就是這樣。

關於導航,沒有什麼能夠以明確的方式處理它,但是您可以重寫FlowHandler實現,特別是方法clientWindowTransition(...),並檢查該部分是否處於活動狀態並執行必要的操作。要從流程之外的導航下退出流程,可以重寫ViewHandler.createView(...)方法並添加轉換。

流狀態綁定到客戶端窗口的ID,這是你所看到的查詢參數。這個細節是必要的,因爲它提供了一個持續跨越導航的狀態,但不像包含多個窗口或選項卡的會話狀態那麼大。

我建議使用Apache MyFaces JSF 2.2 Implementation,因爲該解決方案已考慮到情況下,像多重嵌套流。它工作得很好。看看這個來自Michael Kurz JSF Live blog on Github的JSF 2.2示例,這可能會有所幫助。