複製鏈接
請複製以下鏈接發送給好友

Spring Web Flow

鎖定
Spring Web Flow (SWF) 是Spring Framework的一個脱離模塊。這個模塊是Spring Web應用開發模塊棧的一部分,Spring Web包含Spring MVC。Spring Web Flow 的目標是成為管理Web應用頁面流程的最佳方案。當你的應用需要複雜的導航控制,例如嚮導,在一個比較大的事務過程中去指導用户經過一連串的步驟的時候,SWF將會是一個功能強大的控制器。
外文名
Spring Web Flow
簡    稱
SWF
類    型
Spring框架的子項目

Spring Web Flow簡介

Spring Web Flow單元是一個MVC的擴展,它允許你使用一個高階域定義語言來定義控制器。這個語言用來建模用户交互,需要多次請求到服務器來完成,並可能涉及不同的內容。  [1] 

Spring Web Flow基本元素

Flow 可看作是客户端與服務器的一次對話( conversation )。 Flow 的完成要由分多個步驟來實現,在 Spring Web Flow 的語義中,步驟指的就是 state 。 Spring Web Flow 提供了五種 state ,分別是 Action State 、 View State 、 Subflow State 、 Decision State 、 End State ,這些 state 可用於定義 flow 執行過程中的各個步驟。除了 End State 外,其他 state 都可以轉換到別的 state ,一般通過在 state 中定義 transition 來實現到其他 state 的轉換,轉換的發生一般由事件( event )來觸發。

Spring Web Flow項目特點

Spring Web Flow是著名的Spring框架的子項目。它解決了困擾Web應用程序開發人員的3個主要問題.即用户界面導航的控制、狀態管理和模塊化,極大地提高了生產效率,尤其適合需要複雜用户交互界面的Web應用程序。此外,它還借鑑了UML狀態圖思想的流定義方式,使得Web流的開發更加自然。
更確切地講, Spring Web Flow 語義關注的是業務的流程,並未與 Sun 公司的 Web 規範緊密結合,這種描述是更高層次的抽象,差不多是在建模的角度來描述業務流程。
不過, Spring Web Flow 也並非只有抽象,現在還沒有哪一種工具或語言可以將一個模型直接轉換成相應的應用程序。 Spring Web Flow 更像是抽象建模和技術細節的混血兒,相比於湮沒在繁多的控制器和視圖中的 Web MVC 應用來講, Spring Web Flow 提供瞭如清單 1 所描述的更高層次的抽象,但同時它也整合了像 Unified EL 這樣的工具來控制技術上的細節。
購物車示例
查看購物車--(生成訂單)-->顯示訂單--(確認)-->顯示確認信息
清單1用 Spring Web Flow 語義表達購物車流程
<flow>
<view-state id="viewCart">
<transition on="submit" to="viewOrder"/>
</view-state>
<view-state id="viewOrder">
<transition on="confirm" to="viewConfirmed"/>
</view-state>
<view-state id="viewConfirmed">
<transition on="returnToIndex" to="returnToIndex"/>
</view-state>
<end-state id="returnToIndex"/>
</flow>

Spring Web Flow版本發佈

2010年07月20日,Spring Web Flow 2.1.1.RELEASE 發佈,該版本是 2.1 的一個維護版本,主要改進內容有:
提取方法從FlowApplication JSF 2到Jsf2FlowApplication(swf - 1261)。
*修復處理的級聯屬性在AjaxTilesView(swf - 1053)。
*文檔DataModel實現(swf - 1358)
*刪除Dojo文件從svn和替換為腳本放在一起定製Dojo構建(swf - 1362)。
*刪除壓縮彈簧。js和彈簧dojo。js文件從svn和壓縮在構建(swf - 1363)。
*小JavaScript修復(swf - 1268,swf - 1358)。 [2] 
2010年08月05日,Spring Web Flow 2.2.0.M1 發佈。 [3] 
參考資料