`

spring web flow

 
阅读更多

Spring Web Flow 是一个web框架,适用于元素按规定流程运行的程序。是spring mvc的扩展,支持开发基于流程的应用程序。

 

一: Spring中使用web flow

1: 流程执行器 : 驱动流程的执行,当用户进入一个流程时,流程执行器会为用户创建并启动一个流程执行实例。当流程暂停的时候,流程执行器会在用户执行操作后恢复流程。

<flow : flow-executor id = "flowExecutor" flow-registry="flowRegistry" /> 元素会创建一个流程执行器

 

2: 配置流程注册表: 加载流程定义并让流程执行器能够使用他们

<flow : flow-registry id="flowRegistry" base-path = "/WEB-INF/flows">

<flow : flow-location-pattern value = "*-flow.xml"/>

</fow: flow-registry>

 

3: 处理流程请求 :

(1) FlowHandlerMapping来帮助DispatcherSerlet将流程请求发送给Spring Web Flow

<bean class = "org.springframework.webflow.mvc.servlet.FlowHandlerMapping">

<property name = "flowRegistry" ref = "flowRegistry">

</bean>

FlowHandlerMapping装配了流程注册表,通过流程id,它就能知道请求的URL匹配到流程上。

 

(2) FlowHandlerAdapter : 等同于Spring mvc的控制器。它会响应发送的流程请求并对其进行处理

<bean class = org.springframework.webflow.mvc.servlet.FlowHandlerAdapter>

<property name = "flowExecutor"  ref = "flowExecutor" />

</bean> 

 

二、流程的组件 :

 

状态 , 通过选择spring web flow 的状态几乎可以把任意的安排功能构造成会话式的web应用程序。

1: 视图状态 , 用来为用户展现信息并使用用户在流程中发挥作用。

<view-state id="welcome" view = "greeting">  用于定义视图状态。greeting是视图的名称

如果流程为用户展现了表单,你可能希望指名表单所绑定的对象。 

<view-state id = "takePayment"  model = " flowScope.paymentDetail">  流程范围内对象。

 

2:行为状态,一般会触发Spring所管理Bean的一些方法并根据方法调用的执行结果转移到另一个状态

<action-state id = saveOrder>

<eval expression = "pizzaFlowActions.saveOrder(order)" />

<transition to = "thankYou" />

</action-state>

 

3: 决策状态 : 能够使得在流程执行是产生两个分支。

<decision-state id = "checkDeliveryArea">

<if test = "pizzaFlowActions.checkDeliveryArea(customer.zipCode)"

then = "addCustomer" else ="deliveryWarning ">

</decision-state> 

 

4 : 子流程状态 : 允许在一个正在执行的流程中调用另一个流程

<subflow id = "order"  subflow = "pizza/order">

<input name = "order"  value = "order"/>

<transition on = "orderCreated" to = "payment"> 

</subflow-state>

<input> 元素作为子流程的输入被用于传递订单对象。 如果子流程结束的<end-state> 状态id为ordercreated,那么本流程将会转移到名为payment的状态

 

5: 结束状态 : 流程达到<end-state> 时 可能会有下面几种可能

1 :如果结束的流程时一个子流程,那么调用它的流程将会从<subflow-state> 处继续执行。

2 : 如果<end-state> 设置了view属性,指定的视图将会被渲染。

3:     不是上面两种,这个流程只是结束。

 

二、转移

使用<transition>元素来进行定义,它会作为各种状态元素的子元素

<transtion to="customerReady"> to 表示用于指定流程的下一个状态。

<transtion on="phoneEntered" to = "lookupCustomer"> on 表示触发的事件

 

全局转移 : 在创建完流程之后,你可能会发现有一些状态使用了一些通用的转移。使用<global-transitions>

 

三、流程数据 : 当流程从一个状态进行到另一个状态时,它会带走一些数据。

 声明变量  流程数据保存在变量中, 而变量可以在流程的任意地方进行引用。

1、<var name = "customer" class = "com.springinaction.pizza.domain.Customer" / > 这个变量可以在流程的任务状态进行访问。

 

2、<evaluate result =“viewScope.toppingsList” expression = "T(com.springinaction.pizza.domain.Topping).asList()"> 创建变量,作为行为状态的一部分或者视图状态的入口 表示是视图作用域

 

3、<set name = "flowScope.pizza" value = "new com.springinaction.pizza.domain.Pizza()">

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    spring webflow的一个例子

    spring webflow

    Spring Web Flow权威指南.pdf

    书中重点讲解Web流、流定义语言、流执行、流的测试以及自定义扩展等精髓内容,并结合使用Spring WebFlow 1开发的实例来向读者说明如何将其实际应用到项目中。尤其弥足珍贵的是,作者从框架设计者角度深入阐述了...

    Spring Web Flow API(Spring Web Flow 开发文档).CHM

    Spring Web Flow 。 官网 Spring Web Flow API。 Spring Web Flow 开发文档。

    spring web flow reference 2.4.0

    spring web flow reference 2.4.0

    Spring Web Flow CartApp4

    业务的逻辑涉及到数据的获取、传递、保存,相关的业务功能函数的调用等内容,这些功能的实现都可用 Java 代码来完成,但定义 Spring Web Flow 的语法与 Java 是无关的,这就要求 Spring Web Flow 提供与 Java 代码的...

    Spring Web Flow权威指南

    Spring Web Flow权威指南

    Spring Web Flow 介绍.rar

    Spring Web Flow 介绍.rar Spring Web Flow 介绍.rar

    spring web flow权威指南

    《Spring Web FLow权威指南》一书很好地讲解了有关spring web flow的构建、开发以及web流的管理等,是web flow开发人员不可或缺的一本工具书。

    spring webflow 参考

    spring webflow 1.0 速查参考手册,

    spring webflow 官方中文版权威指南PDF

    spring webflow 官方中文版权威指南PDF,齐全的webflow目录及教程。是学习该框架的工具书

    spring web flow demo

    Spring Web Flow 2.0 入门 本教程分析了 Spring Web Flow 2.0 的技术要点,并且通过创建一个示例应用程序,展示了 Spring Web Flow 2.0 的基本知识。 开始之前 关于本教程 本教程通过一个简化的购物车应用,介绍了...

    Spring Web Flow CartApp3

    Spring Web Flow 的目标是成为管理Web应用页面流程的最佳方案。当你的应用需要复杂的导航控制,例如向导,在一个比较大的事务过程中去指导用户经过一连串的步骤的时候,SWF将会是一个功能强大的控制器。

    Spring Web Flow

    SpringWeb Flow 中的这个 &lt;action-state&gt; 是专为执行业务逻辑而设的 state 。如果某个应用的业务逻辑代码既不适合放在transition 中由客户端来触发,也不适合放在 Spring Web Flow 自定义的切入点,那么就可以考虑...

    Spring Web Flow 2.0 购物车示例

    Spring Web Flow 2.0 购物车示例,资源来自http://www.cnblogs.com/xwdreamer/archive/2011/11/10/2296939.html.建议对照文章学习

    Spring Web Flow 介绍

    传统的Web页面流程图:例如Struts的Action和视图,从struts-config.xml文件的Action...Spring Web Flow允许你使用一个简单清晰的方法体现你的页面流程,并且随时重用。关注点:Web流程的逻辑结构和Web事件条件的定义。

    spring web flow权威指南.pdf

    这是一本介绍 使用spring web flow开发 有流程状态机的需求的项目

    spring web flow入门

    spring web flow入门 swf

    spring webflow 实例

    spring webflow 实例spring webflow 实例spring webflow 实例spring webflow 实例spring webflow 实例spring webflow 实例

    spring web flow 小项目

    spring web flow jsp 页面跳转 学习资料

    spring webflow升级-从1.0 到 2.0

    spring webflow 从 1.0 升级到 2.0

Global site tag (gtag.js) - Google Analytics