Spring Web Flow 專案更新

工程 | Keith Donald | 2009 年 4 月 20 日 | ...

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.comnwa.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,對支援檢視狀態模型繫結的系統進行了大量改進。 該系統提供了 Spring DataBinder 的所有獨特功能,例如支援轉換泛型集合的元素,與 Java PropertyEditors 相比,具有更簡單的型別轉換器 API。

除了這些核心改進之外,我們在過去一年中還看到了一些有趣的 Web Flow 整合,例如 Grails 1.1ZK RIA 框架TerracottaIceFaces,SpringSource 的 richweb 培訓課程IntelliJSkyway Software,以及 第一本 Web Flow 2 書

我們的前進方向

我們為未來做了很多計劃。 我會將所有技術細節留到以後再討論,但想總結一下這項工作的一些關鍵主題。 首先,Web Flow 3 將是第一個需要 Java 5 的版本,因為它將以 Spring Framework 3 為基礎構建。 其次,您可以期望看到引入一個 @Flow 模型,該模型補充 Spring MVC 的無狀態 @Controller 模型,並允許將有狀態 Web 流定義為 POJO。 第三,您可以期望 Spring JavaScript 和 Spring Faces 這兩個從 Web Flow 2 工作中發展出來的模組都將提升為頂級 Spring 專案。 Spring JavaScript 將成為 Spring 的官方 Ajax 整合專案,而 Spring Faces 將成為 Spring 的官方 JavaServerFaces 整合專案。

我期待著下週在 SpringOne 與你們中的許多人會面,討論你們應用該專案的經驗和我們未來的方向!

獲取 Spring 新聞通訊

透過 Spring 新聞通訊保持聯絡

訂閱

搶先一步

VMware 提供培訓和認證,以加速您的進步。

瞭解更多

獲取支援

Tanzu Spring 在一個簡單的訂閱中提供對 OpenJDK™、Spring 和 Apache Tomcat® 的支援和二進位制檔案。

瞭解更多

即將舉行的活動

檢視 Spring 社群中所有即將舉行的活動。

檢視全部