Spring Web Flow 学习笔记(1)

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

2.尽管Spring web Flow是Spring框架的子项目,但它并不是Spring框架的一部分。

3.在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"/>
</flow:flow-registry>

  注册表会在/WEB-INF/flows目录下查找流程定义,任何以-flow.xml的XML文件都将视为流程定义,所有的流程都会通过ID来进行引用。<flow:flow-location-pattern>定义的流程ID就是相对base-path的路径或者是星号代表的路径。

  另一种方式,可以去除base-path属性,而是显示的声明流程定义的文件的位置:

<flow: flow-registry id="flowRegistry">
    <flow:flow-location path="WEB-INF/flows/login-flow.xml"/>
</flow:flow-registry>

  流程的ID是从流程文件的文件名中获取的,这里就是login-flow。

  如果希望更显示的指定流程ID,可以如下:

<flow: flow-registry id="flowRegistry">
    <flow:flow-location id="loginFlow" path="WEB-INF/flows/login-flow.xml"/>
</flow:flow-registry>

  (3)处理流程请求

  我们需要FlowHandlerMapping来帮助DispatcherServlet将流程的请求发送给Spring Web Flow,在Spring应用上下文中,其配置如下:

<bean class="org.springframework.webflow.mvc.servlet.FlowHandlerMapping">
<property name="flowRegistry" ref="flowRegistry"/>
</bean>

  FlowHandlerMapping仅仅是将流程请求定向到Spring Web Flow上,相应请求的是FLowHandlerAdapter,其等同于Spring MVC中的控制器。其配置如下:

<bean class="org.springframework.webflow.mvc.servlet.FlowHandlerAdapter">
<property name="flowExecutor" ref="flowExecutor"/>
</bean>

  

 

 
时间: 2024-10-12 07:34:11

Spring Web Flow 学习笔记(1)的相关文章

Spring Web Flow 学习笔记(2)-流程的组件

1.在Spring Web Flow中,流程由三个主要元素定义的:状态.转移和流程数据. 状态是流程中事件发生的地点,类似公路旅行中停下来的地点,转移就类似与连接这些地点的公路 2.状态 Spring Web Flow 定义了5种不同类型的状态: 状态类型 作用 行为(Action) 是流程逻辑发生的地方 决策(Decision) 将流程分成两个方向,它会基于流程数据的评估结果确定流程的方向 结束(End) 是流程的最后一站,一旦进入End状态,流程就会结束 子流程(Subflow) 会在当前的

Spring web Flow2学习笔记

想抽时间研究一下Spring web Flow2,能够找到的唯一电子书是<深入解析Spring+MVC与Web Flow>,我现在摘录本书的一段内容如下,通过这一段,大家可以想象中文背景的程序员具有多大的先天劣势,还可以看到流畅的翻译对一本书来说有多重要! 不多吐槽了,下面是正文. 首先要区分工作流workflow和webflow,webflow是试图层的概念,用于实现一组页面交互逻辑,类似于.Net的wizard组件:workflow一般是业务层的设计,可能包括主管审核.定时器.施工反馈等业

《Spring实战》学习笔记-第八章:使用Spring Web Flow

第四版的第八章内容与第三版基本一致. 本章内容: 创建会话式web应用程序 定义流程状态和行为 保护web流程 互联网的一个奇特之处就在于它很容易让人迷失.有如此多的内容可以查看和阅读,而超链接是其强大魔力的核心所在. 有时候,web应用程序需要控制web冲浪者的导向,引导他们一步步地访问应用.比如电子商务网站的付款流程,从购物车开始,应用程序会引导你依次经过配送详情.账单信息以及最终的订单确认. Spring Web Flow是一个web框架,它适用于元素规定流程运行的程序.本章中,我们将会探

Spring Web Flow 笔记

在Spring 中配置 Web Flow <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:flow="http://www.sprin

Spring源码学习笔记(3)

Spring源码学习笔记(三) 前言----     最近花了些时间看了<Spring源码深度解析>这本书,算是入门了Spring的源码吧.打算写下系列文章,回忆一下书的内容,总结代码的运行流程.推荐那些和我一样没接触过SSH框架源码又想学习的,阅读郝佳编著的<Spring源码深度解析>这本书,会是个很好的入门. DispatcherServlet 实现核心功能 和普通的 Servelt 类一样, DispatcherServlet 中的 doGet() 和 doPost() 方法

Web前端学习笔记(001)

....编号    ........类别    ............条目  ................明细....................时间 一.Web前端学习笔记                                    2016年6月15日10:38:53    /****************************************************************begin******************************

WEB前端学习笔记 一

最近时间比较充裕,整理了一下学习过的笔记,此篇笔记包含了:Html.Css.JavaScript.Jquery.以及使用帝国CMS或是织梦CMS建立自己的网站,也许也会整理一下PHP的笔记,如果时间允许会整理完全. 虽然笔记是从最基础的开始,但是,并不包含电脑的基础知识,所以你必须已经掌握了一些电脑的基本操作,比如开关机,你的电脑用的是什么操作系统,至少也要会用word和wps吧.浏览器是做什么的,什么拷贝.复制.粘贴.知道最基本的文件类型,如,文本文件,视频文件,图片文件,什么是可执行文件,分

【web开发学习笔记】Structs2 Action学习笔记(一)

1.org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter准备和执行 2. <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> url-pattern约定熟成只写/*,没必要写*.action 3. <

[Spring Data MongoDB]学习笔记--建立数据库的连接

1. 有了上一篇的Mongo后,连接数据库我们还需要更多的信息,比如数据库名字,用户名和密码等. 我们可以继续来配置MongoDbFactory的实例. public interface MongoDbFactory { DB getDb() throws DataAccessException; DB getDb(String dbName) throws DataAccessException; } 然后我们可以继续用MongoDbFactory来创建MongoTemplate的实例. pu