javascript
Spring Web Flow 入门demo(三)嵌套流程与业务结合 附源码
轉(zhuǎn)載地址 ; http://blog.csdn.net/hejingyuan6/article/details/46723021
上篇博客我們說spring web Flow與業(yè)務(wù)結(jié)合的方式主要有三種,下面我們主要介紹一下第三種的應(yīng)用方式
?
3,執(zhí)行到<action-state> 元素
SpringWeb Flow 中的這個(gè) <action-state> 是專為執(zhí)行業(yè)務(wù)邏輯而設(shè)的 state 。如果某個(gè)應(yīng)用的業(yè)務(wù)邏輯代碼既不適合放在transition 中由客戶端來觸發(fā),也不適合放在 Spring Web Flow 自定義的切入點(diǎn),那么就可以考慮添加<action-state> 元素專用于該業(yè)務(wù)邏輯的執(zhí)行。更傾向于觸發(fā)某個(gè)事件來執(zhí)行。
action-state 示例:
[html] view plaincopyprint?
添加subflow 結(jié)點(diǎn)
?
商品列表已經(jīng)實(shí)現(xiàn)了,接下來操作步驟為:
?
?
具體demo實(shí)現(xiàn):
?
Cart:
Cart 是購物車的實(shí)現(xiàn)類,其同樣要實(shí)現(xiàn)Java.io.Serializable 接口,但它沒有像 ProductService 一樣成為由 Spring IoC 容器管理的 Bean,每個(gè)客戶的購物車是不同的,因此不能使用 Spring IoC 容器默認(rèn)的 Singleton 模式。
?
CartItem:
shopping.xml:
在/WEB-INF/flows 目錄下添加 addToCart.xml
subflow-state元素的 subflow 屬性即指明了這個(gè)被調(diào)用的 flow 的 id 為“ addToCart ”,現(xiàn)在就要添加addToCart flow的定義。
addToCart.xml:
[html] view plaincopyprint?
webflow-config.xml 中添加addToCart.xml 的位置
[html] view plaincopyprint?
viewCart.jsp:
[html] view plaincopyprint?
viewOrder.jsp:
[html] view plaincopyprint?
訪問地址:
http://localhost:8080/CartApp5/spring/index
?
顯示效果:
再擴(kuò)展一下:
如果我們將shopping.xml中的配置文件修改一下,改為flowScope時(shí),我們?cè)趘iewOrder頁面也可以獲取products數(shù)據(jù)。
[html] view plaincopyprint?
viewOrder.jsp :
效果圖:
總結(jié):
? ? Spring Web Flow 應(yīng)用流程的方式解決了數(shù)據(jù)存取范圍的問題,并在解決數(shù)據(jù)存取范圍問題的同時(shí),通過使用xml的方式來控制頁面間的流轉(zhuǎn)順序以及頁面間數(shù)據(jù)的傳輸,使得我們頁面間的跳轉(zhuǎn)變得更加靈活可控。
附源碼
總結(jié)
以上是生活随笔為你收集整理的Spring Web Flow 入门demo(三)嵌套流程与业务结合 附源码的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring Web Flow 入门de
- 下一篇: mybatis传参数