第三篇:spring webflow

来源:互联网 发布:java 泛型编程 pdf 编辑:程序博客网 时间:2024/06/14 17:31

spring web Flow了解与简单demo

webflow只是一个简单的业务流程处理机制,跟工作流有点像,但又不是工作流,没有工作流那么强大的功能。作为初次了解,要有这个简单的认知

webflow是基于springMVC基础的,因为所有的请求都需要经过springmvc的dispatcherServlet,webflow是基于请求拦截的。
webflow目前只支持xml配置。

基本语法

所有配置xml文件中,需添加命名空间:
xmlns:flow="http://www.springframework.org/schema/webflow-config"


装配流程执行器(负责创建和执行流程),不负责加载流程定义 

<flow:flow-executor id="testwebflow">

流程注册表

负责加载流程定义并让流程执行器能够使用它们
<flow:flow-registry id="testRegistry" base-path="/WEB-INF/flows">    <flow:flow-location-pattern value="*-flow.xml"/></flow:flow-registry>

处理流程请求

注册一个FlowHandleMapping来帮助DispatcherServlet将流程请求发送给spring webflow,配置FlowHandleMapping方法如下
<bean class="org.springframework.webflow.mvc.servlet.FlowHandlerMapping">    <property name="testRegistry" ref="testRegistry" /></bean>

流程组件

webflow的五种状态:行为(Action),决策(Decision),结束(End),子流程(Subflow),试图(View)

视图状态

    定义:<view-state id="welcome" />

行为状态

表示流程执行到此处时候,应该做什么操作
<action-state id="testAction">    <evaluate expression="testAction.test1(str)"/>    <transiton to="testIndex" /></action>

决策状态

在此处做一个决策,决定流程截下来的走向
<decision-state id="testDecision">    <if test="testDecision.checkDecision(str1,str2)"    then="testde2"    else="testde3" /></decision-state>

子流程状态

当一个流程处理到某个节点的时候,会创建一个子流程去处理该节点的业务流程
<subflow-state id="testsub" subflow="test/test123">    <input name="str1" values="gpf" />    <transition on="test1" to="testflow" /></subflow-state>

结束状态

表明流程到此结束,有时候一个流程的结束状态不止一个
<end-state id="endTest"/>