一、首先是jar包的下载
maven项目的pom.xml配置
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity</artifactId>
<version>1.7</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-tools</artifactId>
<version>2.0</version>
</dependency>
不是maven项目的可自己下载jar包
二、spring-mvc.xml
<!-- 配置velocity引擎 -->
<bean id="velocityConfigurer" class="org.springframework.web.servlet.view.velocity.VelocityConfigurer">
<!-- 页面存放的路径 -->
<property name="resourceLoaderPath" value="/WEB-INF/views/" />
<property name="velocityProperties">
<props>
<prop key="contentType">text/html;charset=UTF-8</prop>
<prop key="input.encoding">UTF-8</prop>
<prop key="output.encoding">UTF-8</prop>
</props>
</property>
</bean>
<!-- 配置视图的显示 -->
<bean id="velocityViewResolver" class="org.springframework.web.servlet.view.velocity.VelocityLayoutViewResolver">
<property name="prefix" value="" /><!-- 视图文件的前缀,即存放的路径(相对于configurer的路径) -->
<property name="suffix" value=".html" /><!-- 视图文件的后缀名 -->
<property name="toolboxConfigLocation" value="/WEB-INF/toolbox.xml" /><!-- toolbox配置文件路径 -->
<property name="dateToolAttribute" value="date" /><!-- 日期函数名称 -->
<property name="numberToolAttribute" value="number" /><!-- 数字函数名称 -->
<property name="contentType" value="text/html;charset=UTF-8" />
<property name="exposeSpringMacroHelpers" value="true" /><!-- 是否使用spring对宏定义的支持 -->
<property name="exposeRequestAttributes" value="true" /><!-- 是否开放request属性 -->
<property name="requestContextAttribute" value="rc"/><!-- request属性引用名称 -->
<property name="layoutUrl" value="layout/default.vm"/><!-- 指定layout文件(装饰页面) -->
<property name="order" value="0"></property>
</bean>
三、总结
其中配置视图引用的class文件一般有两种VelocityLayoutViewResolver和VelocityViewResolver,两者的区别是前者可利用layout做模板统一修饰,知道sitemesh的就更熟悉了,后者反之,不过我看源码发现后者好像已被启用。
在配置过程中发现最基本的两点:
1、velocityConfigurer中配置的存放路径是要访问的路径,即controller返回的页面,且路径是相对于webRoot的;
2、velocityViewResolver中的文件路径都是基于1中的,所以一般不需要前缀。
最后需要感谢博主“ 我意纵横” 点击打开链接,让我学到很多。