Spring Web Flow 2.0 M4 - 請求反饋
Web Flow 團隊一直在努力開發 Web Flow 2。我們剛剛達到了 第四個里程碑,並且最早下週將進入釋出候選狀態。2.0 正式版計劃在本月底釋出。
在 2.0 最終版釋出之前,我們非常希望聽到您的反饋!如果您是一位目前正在使用 Web Flow 1.x 的應用程式開發者,或者正在評估 Web Flow 以便用於您的專案,請 評估 2.0 M4 並 告訴我們您的想法。如果您是一位正在將 Web Flow 引擎整合到您自己的框架中的 Web 框架提供商,我們鼓勵您評估 2.0 M4 中經過改進的鉤子,並與我們聯絡。
在接下來的幾段中,我將為使用 Web Flow 的應用程式開發者和將其整合到自己 Web 框架中的框架開發者提供 2.0 M4 的亮點。
應用程式開發者
首先,迄今為止評估最新 Web Flow 功能集最佳方法是試用分發包中包含的參考應用程式。2.0 M4 中有兩個參考應用程式,都是“Spring Travel”行程預訂應用程式的兩種風味。一種風味展示了 Web Flow 與 Spring MVC 整合並使用 JSP 檢視,另一種則展示了 Web Flow 與 Spring MVC 整合並使用 JSF 檢視。(請參閱:
如何部署)
2.0 版本的主要主題之一是易用性。Web Flow 2.0 M4 引入了許多新功能,可以簡化流的實現,我們非常希望聽到您對這些功能的反饋。具體來說:
- 我們引入了一個簡化的 XML 流定義語法。請試用最新的 Spring Travel 參考應用程式來體驗它,或者比較我們示例流的舊版本與最新版本。您怎麼看?許多簡化來自於對 EL 的增強使用以及更簡單的執行操作的標籤。例如,除了任何流變數之外,您現在還可以使用 EL 來執行任何 Spring bean 上的任何方法。
- 我們引入了與 Spring Security 2 的整合。Spring Travel 參考應用程式展示瞭如何使用“secured”元素來保護流。您也可以保護狀態和過渡元素。
- 2.0 M4 中有幾個新的“富 Web”功能。您可以將一個檢視狀態標記為“popup”,其檢視將在彈出對話方塊中為您渲染(預設情況下為 Dojo popup)。您也可以在過渡塊中使用新的“render”標籤,在處理 Ajax 事件後請求頁面的部分渲染。最後,嘗試在 Spring Travel 應用程式中關閉 Javascript,並注意應用程式如何繼續工作。我們努力構建了對降級支援,這對於那些無法依賴客戶端可用 Javascript 的客戶來說非常重要。
- 我們顯著縮短了 FlowExecution 鍵的長度。1.x 的鍵格式使流執行 URL 看起來像這樣:https:///booking?_flowExecutionKey=_c1E11178E-485F-3913-98BA-86E17A09FA3D_kE977CB0B-47FE-3319-A688-FE4F4FFFCE2。預設的 2.0 格式為您提供了更簡單的 URL,例如:https:///booking?execution=c1v1,其中第一個數字是您的 conversationId,第二個數字是您的 view(或 continuation)id。URL 格式當然仍然是可配置的。
- 還有更多值得探索的內容;請參閱釋出公告以獲取其他新功能的描述。
框架開發者
Web Flow 的目標之一始終是“專注於做好一件事[實現流],並使其易於擴充套件”。Web Flow 的核心發揮著提供最完整流引擎的作用。在此角色下,我們鼓勵其他框架提供商在此基礎上進行開發,並告知我們整合是否不像應有的那麼容易。Grails 社群已經在這樣做,已經將 Web Flow 整合到 Grails 中,用於實現 Groovy 中的流(Grails 構建在 Spring MVC 之上,而 Web Flow 是一個自然的 MVC 擴充套件,因此非常契合)。
在 Web Flow 中,我們正在做一些事情,以便框架開發者更容易整合。首先,基本上有三個主要的擴充套件點:
- FlowExecutor SPI 允許 Web Flow 引擎嵌入到另一個環境中,例如 Web 框架。例如,這就是 Web Flow 整合到 Spring MVC 的方式。我們將 Spring MVC 視為最終的 Java 基礎 MVC 平臺,但如果您不能將其作為基礎,這個鉤子就在那裡。
- FlowBuilder SPI 允許您整合另一種定義流的語法。我們的 XmlFlowBuilder 隨 Web Flow 分發包提供。Graeme Rocher 為 Grails 開發了一個基於 Groovy 的流構建器。
- ViewFactory SPI 允許您將檢視框架整合到 Web Flow 中,用於在流中渲染檢視。這就是 Spring Faces 為 Web Flow 提供 JSF 支援的方式,也是劍橋大學 RSF 團隊將 Web Flow 與其框架整合的方式。我能想到的使用此擴充套件點進行整合的其他候選者包括 Wicket、Flex,也許還有 GWT。
這些擴充套件點中的每一個在 2.0 版本中都得到了簡化,而 ViewFactory 擴充套件點是新加入的。2.0 M4 還引入了一個新的“AjaxHandler”擴充套件點,用於整合 Ajax 請求/響應處理,並提供一個與 Spring Javascript 配合使用的實現。我們目前也正在與 IceFaces 團隊合作,以便在 2.0 最終版釋出前完成與他們 Ajax 元件庫的整合。Web Flow 2 的正式釋出即將到來。幫助我們使其儘可能易於使用和擴充套件!