Spring MVC与Web Flow的集成

     要在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)的执行。 Spring MVC与Web Flow的集成                                         
图 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>

你可能感兴趣的:(spring,Web,mvc,xml,REST)