Spring Web Flow 学习笔记(1)
2015-08-16 15:29
375 查看
1.SpringWebFlow是SpringMVC的扩展,它支持开发基于流程的应用程序,它将流程的定义与实现流程的行为的类和视图分离开来。
2.尽管SpringwebFlow是Spring框架的子项目,但它并不是Spring框架的一部分。
3.在Spring中使用WebFlow
(1)织入流程执行器
流程执行器驱动流程的执行,当用户进入一个流程时,流程执行器会为用户创建并启动一个流程执行实例,当流程暂停的时候,(如为用户展示视图的时候),流程执行器会在用户执行操作后恢复流程。创建流程执行器如下:
<flow:flow-executorid="flowExecutor"flow-registry="flowRegistry"/>
尽管流程执行器负责创建和执行流程,但它并不负责加载流程定义,这个责任落在流程注册表上
(2)配置流程注册表
流程注册表的的工作是加载流程定义并让流程执行器能够使用它们,代码如下:
<flow:flow-registryid="flowRegistry"base-path="/WEB-INF/flows">
<flow:flow-location-patternvalue="*-flow.xml"/>
</flow:flow-registry>
注册表会在/WEB-INF/flows目录下查找流程定义,任何以-flow.xml的XML文件都将视为流程定义,所有的流程都会通过ID来进行引用。<flow:flow-location-pattern>定义的流程ID就是相对base-path的路径或者是星号代表的路径。
另一种方式,可以去除base-path属性,而是显示的声明流程定义的文件的位置:
<flow:flow-registryid="flowRegistry">
<flow:flow-locationpath="WEB-INF/flows/login-flow.xml"/>
</flow:flow-registry>
流程的ID是从流程文件的文件名中获取的,这里就是login-flow。
如果希望更显示的指定流程ID,可以如下:
<flow:flow-registryid="flowRegistry">
<flow:flow-locationid="loginFlow"path="WEB-INF/flows/login-flow.xml"/>
</flow:flow-registry>
(3)处理流程请求
我们需要FlowHandlerMapping来帮助DispatcherServlet将流程的请求发送给SpringWebFlow,在Spring应用上下文中,其配置如下:
<beanclass="org.springframework.webflow.mvc.servlet.FlowHandlerMapping">
<propertyname="flowRegistry"ref="flowRegistry"/>
</bean>
FlowHandlerMapping仅仅是将流程请求定向到SpringWebFlow上,相应请求的是FLowHandlerAdapter,其等同于SpringMVC中的控制器。其配置如下:
<beanclass="org.springframework.webflow.mvc.servlet.FlowHandlerAdapter">
<propertyname="flowExecutor"ref="flowExecutor"/>
</bean>
2.尽管SpringwebFlow是Spring框架的子项目,但它并不是Spring框架的一部分。
3.在Spring中使用WebFlow
(1)织入流程执行器
流程执行器驱动流程的执行,当用户进入一个流程时,流程执行器会为用户创建并启动一个流程执行实例,当流程暂停的时候,(如为用户展示视图的时候),流程执行器会在用户执行操作后恢复流程。创建流程执行器如下:
尽管流程执行器负责创建和执行流程,但它并不负责加载流程定义,这个责任落在流程注册表上
(2)配置流程注册表
流程注册表的的工作是加载流程定义并让流程执行器能够使用它们,代码如下:
注册表会在/WEB-INF/flows目录下查找流程定义,任何以-flow.xml的XML文件都将视为流程定义,所有的流程都会通过ID来进行引用。<flow:flow-location-pattern>定义的流程ID就是相对base-path的路径或者是星号代表的路径。
另一种方式,可以去除base-path属性,而是显示的声明流程定义的文件的位置:
流程的ID是从流程文件的文件名中获取的,这里就是login-flow。
如果希望更显示的指定流程ID,可以如下:
(3)处理流程请求
我们需要FlowHandlerMapping来帮助DispatcherServlet将流程的请求发送给SpringWebFlow,在Spring应用上下文中,其配置如下:
FlowHandlerMapping仅仅是将流程请求定向到SpringWebFlow上,相应请求的是FLowHandlerAdapter,其等同于SpringMVC中的控制器。其配置如下:
相关文章推荐
- Java SE 7新特性:创建泛型实例时自动类型推断
- 提交java性能的注意点
- Java学习--(九)异常处理
- 工厂设计模式
- 配置JDK环境变量
- introduction to Java Programming 编程题5.3<回文整数>
- introduction to Java Programming 编程题5.4<反向显示一个整数>
- Introduction to Java Programming 编程题5.5<对三个数排序>
- Spring 学习笔记(四)——数据访问与事务
- JAVA反射机制练习题
- java基金会成立
- java对象赋值操作
- Mybatis+Spring3
- java特种兵 学习日志1
- java web程序中报错原因总结
- SpringMVC与mysql进行登录验证
- Java-高效地使用Exception-实践
- SpringMVC+Mybatis集成开发,环境搭建。
- 从java String API中获取的礼物
- JAVA正则表达式 Pattern和Matcher