使用Spring Web Flow-程序流程定义

来源:互联网 发布:淘宝网秋冬男式上衣 编辑:程序博客网 时间:2024/05/29 09:12

陈科肇-http://blog.csdn.net/u013474104/article/details/44541021

=========

1.简介

a.Spring Web Flow是一个web框架,它适用于元素按规定流程运行的程序,如和我们熟知的Sturts一样,但Struts没能将流程的定义与实现流程行为的类和视图分离开来

b.Spring Web Flow是Spring MVC的扩展,它支持开发基于流程的应用程序。它将流程的定义与实现流程行为的类和视图分离开来;

c.Spring Web Flow是Spring框架的子项目,但不是Spring框架的一部分;

2.安装Spring Web Flow

基于简介c点的介绍,因此我们需要安装Spring Web Flow。

在maven项目的pom.xml配置文件中添加jar包依赖,如下:

<dependency><groupId>org.springframework.webflow</groupId><artifactId>spring-webflow</artifactId><version>2.2.1.RELEASE</version></dependency>
关联下载下来有好多jar文件,但我们只需要binding和webflow这两个jar文件,其它的是Spring Web Flow与JSF和JavaScript相协作时所用到的。
3.在Spring中使用Web Flow

Spring Web Flow是构建于Spring MVC基础之上的,这就意味着所有的流程请求都要首先经过Spring MVC的DispatcherServlet。因此我们要在Spring应用上下文中配置一些Bean来处理流程请求并执行流程。

配置Spring Web Flow:

步骤:a.执行器,b.注册表,c.处理请求(请求和响应)

<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:context="http://www.springframework.org/schema/context"xmlns:flow="http://www.springframework.org/schema/webflow-config"xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsdhttp://www.springframework.org/schema/beans        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd        http://www.springframework.org/schema/context         http://www.springframework.org/schema/context/spring-context-3.0.xsd        http://www.springframework.org/schema/webflow-config        http://www.springframework.org/schema/webflow-config/spring-webflow-config-2.0.xsd"><!-- Spring Web Flow +++++++++++++++++++++++++++begin --> <!--  1. 织入流程执行器:流程执行器驱动流程的执行(当用户进入一个流程时,流程执行器会为用户创建并启动一个流程执行实例。当流程暂停的时候(如为用户展示视图时),流程执行器会在用户执行操作后恢复流程)。 虽然流程执行器负责创建和执行流程,并不负责加载流程定义,这个责任落在了流程注册表(flow registry)中  -->  <flow:flow-executor id="flowExecutor" flow-registry="flowRegistry"/>  <!--   2.  配置流程注册表:加载定义的流程,让执行器能够使用它们  定义的流程:base-path+value=/WEB-INF/flows/*-flow.xml  流程的ID是如何计算的:/[WEB-INF/flows](流程注册表基本路径)/[wwo](流程ID)/[wwo-flow.xml](流程定义文件)  显示声明流程定义文件(ID、URL):<flow:flow-location id="login" path="/WEB-INF/flows/*-flow.xml"/>,去除<flow:flow-registry>的base-path属性   -->   <flow:flow-registry id="flowRegistry" base-path="/WEB-INF/flows">   <flow:flow-location-pattern value="*-flow.xml"/>   </flow:flow-registry>   <!--    3.   处理流程请求(请求定向指定):使用Spring MVC处理时,我们是通常通过DispatcherServlet将请求分发给控制器。但对于   流程而言,我们需要FlowHandlerMapping来帮助DispatcherServlet将流程请求发送给Spring Web Flow。    -->    <bean class="org.springframework.webflow.mvc.servlet.FlowHandlerMapping">    <property name="flowRegistry" ref="flowRegistry"/>    </bean>    <!--      4.               响应请求(相当于Spring MVC的控制器):     -->     <bean class="org.springframework.webflow.mvc.servlet.FlowHandlerAdapter">      <property name="flowExecutor" ref="flowExecutor"/>     </bean> <!-- Spring Web Flow +++++++++++++++++++++++++++end --></beans>
4.流程的组件

在Spring Web Flow中,流程主要由3个元素定义的:状态、转移和流程数据。

状态:是业务逻辑执行、做出决策或将页面展现给用户;

转移:从一个状态转移到另一个状态;

流程数据:在流程处理中,收集的一些数据(流程的当前状况)。

a.状态

Spring Web Flow可供选择的状态状态类型它是用来做什么的行为(Action)行为状态是流程逻辑发生的地方决策(Decision)决策状态将流程分成两个方向,它会基于流程的评估结果确定流程方向结束(End)结束状态是流程的最后一站。一旦进入End状态,流程就会终止子流程(Subflow)子流程状态会在当前正在运行的流程上下文中启动一个新的流程视图(View)视图状态会暂停流程并邀请用户参与流程


b.转移


c.流程数据


5.开始定义流程


暂时用不上,先不写了!

待续....

1 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 左脸疼痛张嘴疼怎么办 一张嘴脸颊会痛怎么办 法斗地包天怎么办 皮肤起小水泡痒怎么办 手臂起小水泡痒怎么办 手背有小水泡痒怎么办 水泡破了很痒怎么办 有一块牙龈肿了怎么办 耳前瘘管有脓怎么办 睡歪脖子很痛怎么办 睡歪脖子怎么办小妙招 睡觉睡得脖子疼怎么办 睡久了后脑勺疼怎么办 腮帮肿了但不疼怎么办 吃硬东西腮帮痛怎么办 嘴巴长开旁边疼怎么办 晚上腿酸睡不着觉怎么办 吃酸的牙齿酸软怎么办 吃酸东西牙齿酸怎么办 拔完智齿神经疼怎么办 22岁腿关节疼痛怎么办 耳洞里面有硬块怎么办 耳洞发炎有硬块怎么办 小孩慢性扁桃体发炎怎么办大全 侧切伤口化脓了怎么办 狗狗伤口不愈合怎么办 狗后腿烂了化脓怎么办 乳腺增生腋下淋巴结肿大怎么办 手术刀口冒脓了怎么办 脚伤口感染肿了怎么办 皮外伤口不愈合怎么办 烫伤新皮红红的怎么办 脸上痘痘化脓了怎么办 痘痘引起的红肿怎么办 痘痘引起的硬块怎么办 痘痘化脓感染了怎么办 烫伤有脓了烂掉怎么办 烫伤起泡破皮了怎么办 一出汗就有狐臭怎么办 耳朵后面臭臭的怎么办 赤黑abo意外怀孕怎么办