spring mvc+velocity+spring web flow简单配置

1.首先配置web.xml

在这个文件中,所有对应flow下的请求都会由前端控制器去处理。具体spring mvc在另一篇文章中有介绍。

<?xml version="1.0" encoding="UTF-8"?>
 <web-app version="2.5" 
 xmlns="http://java.sun.com/xml/ns/javaee" 
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
  http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  
 
<context-param>
     <param-name>contextConfigLocation</param-name>
     <param-value>
         /WEB-INF/spring-service.xml
         /WEB-INF/spring-webflow.xml
     </param-value>
</context-param>
 
 <listener>
         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  
 <!-- 配置spring核心servlet -->
  <servlet>
   <servlet-name>spring</servlet-name>
   <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
   <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
   <servlet-name>spring</servlet-name>
   <url-pattern>/flow/*</url-pattern>
  </servlet-mapping>
 
 <welcome-file-list>
     <welcome-file>index.jsp</welcome-file>
 </welcome-file-list>
 
</web-app>
  

2.配置映射,把所有的请求都交给FlowController来处理(spring-servlet.xml)

<?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:aop="http://www.springframework.org/schema/aop"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc" 
    xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:webflow="http://www.springframework.org/schema/webflow-config"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-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/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
        http://www.springframework.org/schema/webflow-config http://www.springframework.org/schema/webflow-config/spring-webflow-config-2.0.xsd">

    <bean name="flowController" class="org.springframework.webflow.mvc.servlet.FlowController">
        <property name="flowExecutor" ref="flowExecutor"/>
    </bean>
    
    <bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        <property name="mappings">
            <props>
                <prop key="/*">flowController</prop>
            </props>
        </property>
    </bean>
    
</beans>

3.spring-webflow.xml
因为在本次练习中用的是velocity作为前端UI,所以在配置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:aop="http://www.springframework.org/schema/aop"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc" 
    xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:webflow="http://www.springframework.org/schema/webflow-config"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-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/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
        http://www.springframework.org/schema/webflow-config http://www.springframework.org/schema/webflow-config/spring-webflow-config-2.0.xsd">

    <!--velocity配置-->
    <bean id="velocityConfig" class="org.springframework.web.servlet.view.velocity.VelocityConfigurer">
        <property name="resourceLoaderPath">
            <value>WEB-INF/template/</value>
        </property>
    </bean>
    
    <bean id="velocityviewResolver" class="org.springframework.web.servlet.view.velocity.VelocityViewResolver">
        <property name="viewClass">
            <value>org.springframework.web.servlet.view.velocity.VelocityView</value>
        </property>
        <property name="suffix">
            <value>.vm</value>
        </property>
    </bean>
    
    <bean id="mvcViewFactoryCreator"  
        class="org.springframework.webflow.mvc.builder.MvcViewFactoryCreator">  
        <property name="viewResolvers" ref="velocityviewResolver" />  
    </bean>
    
    <webflow:flow-builder-services id="flowBuilderServices"  
        view-factory-creator="mvcViewFactoryCreator" />  
        
    <webflow:flow-executor id="flowExecutor" flow-registry="flowRegistry"/>
    
    <webflow:flow-registry id="flowRegistry" flow-builder-services="flowBuilderServices">
        <webflow:flow-location-pattern value="/WEB-INF/flows/**/*-flow.xml"/>
    </webflow:flow-registry>
    
</beans>

4.相应flow的创建vm-flow.xml

<?xml version="1.0" encoding="UTF-8"?>
<webflow:flow xmlns:webflow="http://www.springframework.org/schema/webflow"
xmlns:ns0="http://www.w3.org/2001/XMLSchema-instance"
ns0:schemaLocation="http://www.springframework.org/schema/webflow http://www.springframework.org/schema/webflow/spring-webflow-2.0.xsd"
start-state="index">

    <webflow:view-state id="index" view="index">
                </webflow:view-state>
</webflow:flow>

这样在输入URL时,http://localhost:8080/MyFlow/flow/vm-flow 
就会根据velocity的相关配置到WEB-INF/template下面去找index.vm文件。

 

暂时只了解这么多,以后再补充。望对大家有用。如有错误,望告知,谢谢!

posted on 2012-10-15 18:15  zzjjian333  阅读(2361)  评论(0编辑  收藏  举报