要在Spring MVC环境内部署用于执行的流,需要定义一个FlowController,它是一个特殊的org.springframework.web.servlet.mvc.Controller控制器。FlowController作为Spring MVC和Spring Web Flow 之间的适配器,将所有来自页面的HTTP 请求路由到FlowController,然后由它移交给Web Flow 的流引擎FlowExecutionManager。Web Flow引擎再引用FlowRegistry创建相应流执行器FlowExcution。FlowRegistry也称为流定义字典,系统中所有流的定义文件必须在流定义字典中注册。Web Flow引擎会根据流定义的文件名(不包含文件扩展名)在流定义字典中检索从而生成相应的流执行器(FlowExcution)。FlowExecution会根据自己的流定义文件(FlowName.xml)中定义的各种状态执行相应的业务逻辑,也就开始了一个具体流(FlowInstance)的执行。
图 1-1 Spring MVC与Web Flow的集成图
利用Spring容器提供的依赖注入功能,它们在applicationContext.xml的配置如下:
<!—配置流执行器—>
<flow: executor id="flowExecutor" registry-ref="flowRegistry" />
<!—注册流控制器-->
<bean name="/startFlow.do" class="org.springframework.webflow.executor.mvc.FlowController">
<property name="flowExecutor" ref="flowExecutor" />
</bean>
<!—在流定义字典中注册流定义文件-->
<bean id="flowRegistry" class="org.springframework.webflow.engine.builder.xml.
XmlFlowRegistryFactoryBean">
<property name="flowLocations">
<list>
<!—配置系统自定义的流文件-->
<value>/WEB-INF/flows/flowName1.xml</value>
...
<value>/WEB-INF/flows/flowNameN.xml</value>
</list>
</property>
</bean>
当然,也可以采用通配符的配置方式,这种方式更简单明了,这样系统中所有在/WEB-INF/flows目录下的流定义文件都被注册到了流字典中。
<bean id="flowRegistry" class="org.springframework.webflow.engine.builder.xml.
XmlFlowRegistryFactoryBean">
<property name="flowLocations" value="/WEB-INF/flows/*.xml "/>
</bean>
- 大小: 5.1 KB
分享到:
相关推荐
书中包含了一些开发良好设计和解耦的Web 应用程序的最佳实践,介绍了Spring 框架中的Spring MVC 和Spring Web Flow,以及着重介绍利用Spring 框架和Spring MVC 编写Web 应用程序的最佳方法。《深入解析Spring MVCgn ...
Web Flow则是一个独立于Spring的库,但可以与Spring MVC很好地集成。它专注于管理用户的工作流和状态,提供了一种声明式的方式来定义和执行用户交互流程。 6. **Web Flow的流程定义**:流程定义是Web Flow的核心,...
### Spring MVC 与 Web Flow 技术详解 #### 引言 随着软件开发技术的不断发展,Web 应用程序的需求日益复杂。为了更好地管理和控制这些应用程序的流程,Spring 框架提供了强大的支持。其中,Spring MVC 和 Spring ...
### Expert Spring MVC 和 Web Flow:深入理解与应用 #### 一、Spring MVC 概述 Spring MVC 是 Spring Framework 的一个重要模块,它实现了 Model-View-Controller(MVC)设计模式,用于构建高度可维护和可扩展的...
书中会解释Web Flow的概念,包括定义状态、转换、事件处理,以及如何与Spring MVC集成。 在阅读《Expert Spring MVC and Web Flow》这本书时,你将学习到以下核心知识点: 1. **Spring MVC基础**:包括Spring MVC...
它将Spring MVC的功能与一种称为Webflow的流程管理概念相结合,帮助开发者更好地组织和控制用户会话的生命周期。在这个教程中,我们将深入探讨Spring MVC Webflow的核心概念、优势以及如何在实际项目中使用它。 1. ...
标题中的“使用sitemesh替换tiles2,spring mvc+spring web flow+sitemsh”指出了一种在Spring MVC和Spring Web Flow项目中用Sitemesh替代Tiles2作为页面布局工具的技术实践。Sitemesh和Tiles2都是用于创建可重用的...
8. **集成Spring MVC**:WebFlow如何与Spring MVC无缝集成,利用Spring的依赖注入和AOP特性。 9. **事件驱动**:WebFlow基于事件的架构,如何触发和响应用户操作,以及如何定义自定义事件。 10. **国际化的支持**...
Spring Web Flow 2 是该框架的一个版本,它与Spring MVC紧密集成,提供了一种优雅的方式来组织和控制用户会话的生命周期。 在Spring Web Flow 2中,一个页面流定义了一个特定的业务流程,包括一系列的视图状态...
总而言之,《Pro.Spring.MVC.With.Web.Flow》是学习和掌握Spring MVC与Web Flow的宝贵资源,对于想要提升自己在企业级Web开发领域的技能的开发者来说,这是一本不可多得的参考书籍。通过深入研究书中的内容和源码,...
- **Spring MVC Flash Scope集成**:增强了与Spring MVC框架的集成,允许在Web Flow和Spring MVC之间共享临时数据。 - **部分JSR-303 Bean验证**:实现了对JSR-303 Bean验证规范的部分支持,提高了数据验证的能力。 ...
- **与Spring MVC的集成**:Spring Web Flow 可以无缝集成到Spring MVC应用中,利用Spring的依赖注入和AOP特性。 - **第三方库集成**:Spring Web Flow 支持与其他库如Spring Security、Hibernate等的集成,方便...
Spring Webflow可以无缝集成Spring MVC,将流程管理与控制器相结合。通过`WebflowConfigurer`配置,可以在Spring MVC环境中使用`FlowHandlerAdapter`和`FlowHandlerMapping`进行适配和映射。 总结,Spring Webflow ...