2015-08-18 103 views
3

我正在用Spring MVC和hibernate構建一個web應用程序。我正在努力與範圍。例如,在相同的界面上創建父項和子項需要在創建第一個子項後重置子bean。 Spring MVC不允許從會話範圍中刪除bean。同時,將孩子轉移到多個請求範圍是不現實的。我需要一個談話範圍。Spring Web Flow和替代品

我現在正在研究Spring Web Flow作爲解決方案。然而,它的記錄很差,似乎完全取決於xml配置。這兩個功能似乎都表明它是一個較老的,也許不是很好支持的項目。

任何人都可以建議我是否應該投入時間學習Spring Web Flow,或者建議與Spring MVC綁定的替代解決方案。

+0

Ehrm的最後一個版本來自幾個星期前,我懷疑你正在閱讀正確的文檔,因爲對基於java的配置的支持已經存在了一段時間...查看http://docs.spring.io/spring- webflow/docs/2.4.0.RELEASE/reference/html/system-setup.html –

+2

@ M.Deinum可能會將您的問題誤認爲是JavaConfig。當然,他是對的。 JavaConfig支持是在一段時間後添加的。但我相信你在問網絡流量是如何定義的。這仍然是100%的XML。 –

回答

5

我在這花了一些時間。

我認爲與註釋相反的xml的原因是設計。一旦有人開始思考,流程配置很簡單,並導致非常快速的發展。

是的,它似乎在維護模式,但設計是堅實可靠的,發展似乎是非常有效的。學習曲線有點陡峭,特別是如果集成到一個現存的Web應用程序中,但我在三天左右就開始運行。

Webflow自己的文檔不是很好,但教程鏈接here是優秀的。

上的更新和我建立了一個完整的評估體系

5個月(即測試/考試系統)。我的背景是IT,我擁有心理學博士學位。

我建立的系統已經過全面測試和壓力測試。

webflow的優點。

  1. 一個人就可以開始測試,放棄和重啓,沒有任何問題同一次會議上,因爲flowState照顧一切
  2. 沒有的時候,用戶可以使用後退按鈕多遠完全控制回到用戶可以去。在非法使用後臺鍵後,返回到狀態非常簡單,用戶友好。
  3. 壓力測試性能很好
  4. 配置很簡單。我幾乎沒有時間處理與Webflow相關的設計或錯誤問題。
  5. 從更高層次的設計角度來看,從業務角度來看,沒有任何用例是無法實現的。

缺點

由於所有的對象都在網頁上呈現前系列化,你必須非常小心,如果你帶他們出去的flowState豆你如何緩存對象。

3

春季Web流似乎被維護,但不積極發展。我看到a handful of commits,主要是更新依賴版本和修復錯誤。

你說得對,流程的配置是純XML的,我認爲這是老化的Spring項目的最大缺點。我搜索了一個DSL或動態建設者,我沒有找到任何東西。

話雖如此,我還是試試了一下。簡單的流程 - 即使是動態的和繼承的流程 - 也是可能的。此外,支持表單和POST-Redirect-GET模式實現可能對您有用。當您使用瀏覽器後退按鈕時,最後一種技術可防止表單重新提交。

0

自從我看到「primefaces」後,我一直在尋找webflow(過去一天,〜16小時)。

Webflow提供不同類型的狀態和轉換到這些狀態。國家可以有一個與之相關的視圖(HTML頁面或JSP頁面 - > primefaces進來)。每個JSP頁面都是模板,就像使用java和xhtml的PHP一樣。使用primefaces組件,客戶端和服務器之間的交互「看起來」幾乎是自動的(對於快速開發來說是一個加號)。 Webflow還提供流變量,這是一個java數據對象。流變量可以在流程上有生命,並被視圖和模板使用。 Webflow允許您控制所有狀態之間的轉換。

但是,我認爲這是我停止研究的地方。首先,如果需要流程控制,在客戶端上構建它,webflow優於使用AngularJS和Spring MVC(@RequestMapping)的良好客戶端Web應用程序的優點。如果您希望在會話的整個生命週期中存在一個變量,請創建一個javascript變量,但是如果該變量只需要存在於服務器上,並且您想使用模板,那麼webflow就像是一個理想的選擇。

如果你需要一個國家FUL web應用,那麼它可能是籤春季HATEOAS型概念(經過國家作爲參數傳遞給客戶端)是一個好主意,而且參數指的是時間有限的變量。編碼較少,似乎更符合互聯網模式。