javascript
Spring Web Flow 入门demo(一)简单页面跳转 附源码
轉載地址
http://blog.csdn.net/hejingyuan6/article/details/46508821
spring Web Flow (SWF)是Spring Framework的一個脫離模塊。這個模塊是Spring Web應用開發模塊棧的一部分,Spring Web包含Spring MVC。
Spring Web Flow的目標是成為管理Web應用頁面流程的最佳方案。當你的應用需要復雜的導航控制,例如向導,在一個比較大的事務過程中去指導用戶經過一連串的步驟的時候,SWF將會是一個功能強大的控制器。
?
下面我們還是從一個簡單的demo開始了解它:
?
這個例子是結合Springmvc來實現,項目結構:
Web.xml配置:
[html] view plaincopyprint?
對應的SpringMVC的配置文件:web-application-config.xml
其中引入的兩個配置文件:webmvc-config.xml
對于UrlFilenameViewController類,此處理解為由于我們并不是通過訪問controller來返回頁面的形式,那么我們如何可以訪問Web-INF下的保護類資源呢,就是通過這個類的作用來實現。此處的理解有什么偏差還請各位提出寶貴意見!
?
webflow-config.xml:
使用的流程文件:shopping.xml
[html] view plaincopyprint?
對應的頁面:
?
index.jsp
[html] view plaincopyprint?
viewCart.jsp
[html] view plaincopyprint?
viewOrder.jsp
orderConfirmed.jsp
這幾個頁面都使用了變量 flowExecutionUrl ,表示 flow 執行到當前狀態時的 URL 。 flowExecutionUrl 的值已經由 Spring Web Flow 2.0 框架的代碼進行賦值,并放入相應的 model 中供 view 訪問。 flowExecutionUrl 的值包含 flow 在執行過程中會為每一狀態生成的唯一的 key ,因此不可用其他手段來獲取。請求參數中 _eventId 的值與shoppting.xml中 transition 元素的 on 屬性的值是對應的,在接收到_eventId參數后,相應transition會被執行。
測試使用方式:
?
訪問地址:http://localhost:8080/CartApp3/spring/index.jsp
?
總的來說,為什么要配置這么多內容呢?原因如下:
SpringWeb Flow 如何與 Spring Web MVC 整合在一起?
客戶端發送的請求,先會由 servlet 容器(Tomcat)接收, servlet容器會找到相應的應用程序(CartApp3),再根據 web.xml 的配置找到出符合映射條件的 servlet 來處理。Spring Web MVC 中處理請求的 servlet 是 DispatcherServlet ,如果請求的路徑滿足 DispatcherServlet的映射條件,則 DispatcherServlet 會找出 Spring IoC 容器中所有的 HandlerMapping ,根據這些HandlerMapping 中匹配最好的 handler (一般情況下都是 controller ,即控制器)來處理請求。當 Controller處理完畢,一般都會返回一個 view (視圖)的名字,DispatcherServlet再根據這個view的名字找到相應的視圖資源返回給客戶端。
弄清楚Spring Web MVC 處理請求的流程后,基本上就可以明白要整合 Spring Web MVC 與 Spring Web Flow所需要的配置了。為了讓客戶端的請求變成執行某個 flow 的請求,要解決以下幾個問題:
?
所有這些配置的目的無非是兩個:一是要讓客戶端的請求轉變成flow 的執行,二是要讓 flow 執行過程中、或執行結束后得到的視圖能返還給客戶端。
?
?源碼下載
總結
以上是生活随笔為你收集整理的Spring Web Flow 入门demo(一)简单页面跳转 附源码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sturts2标签判断多个条件
- 下一篇: Spring Web Flow 入门de