Spring Web Flow 專案團隊剛剛完成了 Web Flow 2 的 第 7 個維護版本。這是我們迄今為止最好的版本,幾乎與 Web Flow 2.0.0 最終版本 的日期相隔一年。現在,隨著 2.0.x 系列的成熟和穩定,我們開始著手下一個主要版本。在這篇文章中,我想回顧過去的一年,並提供一些關於我們前進方向的資訊。
Web Flow 2 採用
去年發佈 Web Flow 2 時,我們在發佈後的頭兩個月內看到了 50,000 次下載。從那以後,我們的 論壇流量 穩步增長,我們也看到了幾個令人興奮的行業的新採用。你們中的許多人都知道 Spring Web Flow 是 Orbitz 線上旅遊平台(如今為 ebookers.com 和 nwa.com 等網站提供支持)的基礎。如果您一直在關注 2009 年 NBA 季後賽,您也可能會發現 Web Flow 也是 nba.com 的重要組成部分。
我們過去一年的工作
與所有 Spring 專案一樣,Web Flow 依賴於回饋才能成功。與客戶和 SpringSource 支援工程師的現場互動推動了我們過去一年在 2.0.x 上的大部分工作。社群在 報告錯誤、貢獻補丁、突出顯示 使用情境 和普遍討論 方法 專案可以繼續改進方面也表現出色。
我想快速回顧自 2.0.0.RELEASE 以來所做的一些具體改進
-
簡化配置和流量 URL 對應的慣例
這一個,應用於 2.0.5,並且由客戶回饋以及 Dan Allen 的 JSFOne 演示 驅動,將典型的 webflow-config.xml 的大小減半,減少到 ~20 行配置。正如您所看到的 看到,這是透過應用流量定義的萬用字元搜索,結合基於其流量 ID 將流量定義綁定到 URL 的慣例來實現的。
-
支援顯式檢視狀態模型綁定
此改進首先提供給 SpringSource 客戶以響應此 安全建議,隨後在 2.0.3 中發佈,允許您透過檢視狀態限制允許的模型綁定集。這是以聲明式風格實現的,如 此處 所示。
重定向後發佈的改進
Web Flow 最有用的功能之一是 重定向後發佈模式 正常工作,這是透過受控導航獲得良好返回按鈕支援的一個重要先決條件。2.0.5、2.0.6 和 2.0.7 都引入了對此支援的後續改進。最近的改進確保在所有情境中一致地應用重定向行為,包括存在綁定或驗證錯誤時。您可以在 ViewState.java 的 doEnter 和 doResume 方法中查看控制此模式強制執行的原始程式碼。
支援串流操作
社群 發現 如何將檔案串流回參與流量的客戶端。 記載的支援 在 Web Flow 2.0.0 中被忽略,並在 2.0.6 中添加。
型別轉換改進
自 2.0.2 到 2.0.6,對支援檢視狀態模型綁定的系統進行了無數改進。與 Java PropertyEditors 相比,該系統提供了 Spring 的 DataBinder 的所有獨特功能,例如支援轉換泛型集合的元素,以及更簡單的型別 Converter API。
除了這些核心改進之外,我們還在去年看到了許多有趣的 Web Flow 整合,例如 Grails 1.1、ZK RIA 框架、Terracotta、IceFaces、SpringSource 的 richweb 訓練課程、IntelliJ、Skyway Software 和 第一本 Web Flow 2 書。
我們的目標
我們對未來有很多規劃。我會將所有的技術細節留待之後再談,但想先總結一下這項工作的一些主要主題。首先,Web Flow 3 將會是第一個需要 Java 5 的版本,因為它會以 Spring Framework 3 作為基礎。其次,你可以期待看到 @Flow 模型的引入,它會補充 Spring MVC 的無狀態 @Controller 模型,並允許將有狀態的 Web Flow 定義為 POJO。第三,你可以期待 Spring JavaScript 和 Spring Faces,這兩個模組都是從 Web Flow 2 的工作中發展出來的,它們都會被提升為頂級的 Spring 專案。Spring JavaScript 將成為 Spring 官方的 Ajax 整合專案,而 Spring Faces 將成為 Spring 官方的 JavaServerFaces 整合專案。
我期待下週在 SpringOne 與你們很多人見面,討論你們應用這個專案的經驗以及我們未來的方向!