配置Spring Web Flow需要在Spring的上下文中配置一些关于流程的Bean来处理流程的请求并执行。
让后开始配置吧:
- 装配流程执行器
- 配置流程注册表
流程注册表是加载流程定义并通过执行器执行他们。
- 处理流程请求
DispatcherServlet一般会直接将请求分发给控制器,所以如果我们想要使用Spring Web Folw就需要一个Mapping将请求映射到SWF.
请求重定向给SWF后我们需要的是处理请求,
需要使用FlowHandlerAdapter进行请求处理。
组件
状态类型 | 它是用来做什么的 |
---|---|
视图(视图) | 暂停流程并邀请用户参与流程 |
行为(动作) | 行为状态,流程逻辑发生的地方 |
决策(决定) | 基于流程数据的评估查询查询结果确定流程方向 |
子流程(子流) | 在当前的流程上下文中启动一个新的流程 |
结束(完) | 流程的最后一站 |
流程配置例子
或
Spring Web Flow 应用
我们将使用一个简单的支付的例子,来一步步的配值Spring Web Flow,
我们首先要理清楚整个支付的流程
开始 --> 特定用户 --> 创建订单 --> 支付 -->
保存订单 --> 感谢用户 -->结束
这个简化的支付流程是一个线性的过程,定义起来还是什么容易。
首先我们默认已经搭建好了Spring SpringMVC项目
现在开始构建项目:
- 首先要导入SWF需要的jar
org.springframework.webflow
spring-webflow
2.4.5.RELEASE
- 配置springmvc.xml文件
基于springmvc项目我们需要,在springmvc.xml配值文件中配值拦截映射器:
配置流的处理器适配器
- 创建并配置webflow-config.xml
- 创建shopping.xml用来定义流程
其中on属性表示触发的事件,to属性是当触发该事件后转向的状态。首先转向viewCart状态,当点击submit后转向viewOrder状态,在该状态下点击confirm则会转移到viewConfirmed状态,依次同理。这里转向的页面是jsp页面,
view-state的属性id与jsp文件的名字相对应。
例如id viewCart 对应viewCart.jsp页面
Cart Application
View Cart
Submit
上面需要说明的是Spring Web Flow为视图的用户提供了一个flowExecutionUrl变量,它包含了流程的URL,结束链接将一个”_eventId”参数关联到URL上,以便回到Web流程时触发该参数值的事件,直到流程结束。
再例如:
Cart Application
Order Confirmed
Confirm