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 中經過改進的鉤子,並向我們提出建議。
在接下來的幾段中,我將提供 2.0 M4 的重點內容,供使用 Web Flow 的應用程式開發人員以及將其整合到自己的 Web 框架中的框架開發人員參考
應用程式開發人員
首先,評估最新 Web Flow 功能集的最佳方式是實際操作發布版本中包含的參考應用程式。2.0 M4 中有兩個參考應用程式,都是「Spring Travel」旅行預訂應用程式的不同版本。其中一個版本顯示了 Web Flow 整合到具有 JSP 檢視的 Spring MVC 中,另一個版本顯示了 Web Flow 整合到具有 JSF 檢視的 Spring MVC 中。(請參閱:
如何部署)
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 彈出視窗)。您也可以在轉換區塊中使用新的「render」標籤,以便在處理 Ajax 事件後請求頁面的部分呈現。最後,請嘗試在 Spring Travel 應用程式中關閉 Javascript,並注意應用程式如何繼續運作。我們努力建構對降級的支援,這對於無法依賴用戶端上可用的 Javascript 的客戶而言非常重要。
- 我們已大幅縮短了 FlowExecution 金鑰的長度。1.x 金鑰格式的流程執行 URL 如下所示:http://localhost/booking?_flowExecutionKey=_c1E11178E-485F-3913-98BA-86E17A09FA3D_kE977CB0B-47FE-3319-A688-FE4F4FFFCE2。預設的 2.0 格式會為您提供更簡單的 URL,例如:http://localhost/booking?execution=c1v1,其中第一個數字是您的 conversationId,第二個數字是您的檢視(或繼續)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 開發了一個基於 Groovy 的流程建構器,用於 Grails。
- ViewFactory SPI 允許您將檢視框架整合到 Web Flow 中,以便在流程中呈現檢視。這就是 Spring Faces 為 Web Flow 提供 JSF 支援的方式,也是劍橋大學 RSF 團隊將 Web Flow 與其框架整合的方式。我能想到的使用此擴充點進行整合的其他候選項目包括 Wicket、Flex,也許還有 GWT。
每個擴充點在版本 2 中都得到了簡化,ViewFactory 擴充點是新的。2.0 M4 還引入了一個新的「AjaxHandler」擴充點,用於整合 Ajax 請求/回應處理,其包含一個與 Spring Javascript 配合使用的實作。我們目前還與 IceFaces 團隊合作,以便及時在 2.0 正式版中與他們的 Ajax 元件庫進行整合。Web Flow 2 的正式發布即將到來。請幫助我們使其盡可能易於使用和擴充!