使用Velocity模版需要引入velocity-1.x.x.jar和common-collections.jar,如果想要在Velocity中使用spring的dataToolAttribute或者numberToolAttribute,还需要Velocity-tools-generic-1.x.jar
1、在*-servlet.xml中配置相关的bean,如下:
<bean id="velocityConfigurer" class="org.springframework.web.servlet.view.velocity.VelocityConfigurer">
<property name="resourceLoaderPath">
<value>WEB-INF/velocity/</value>
</property>
</bean>
?这里配置的是引擎自己,告诉在spring中设置Velocity引擎,并设置在哪里能找到velocity的模版,建议在WEB-INF的某个目录下,防止直接被访问,还可以设置其他的属性,如下,是设置循环是从0开始的,默认的是1开始的
<bean id="velocityConfigurer" class="org.springframework.web.servlet.view.velocity.VelocityConfigurer">
<property name="resourceLoaderPath">
<value>WEB-INF/velocity/</value>
</property>
<property name="velocityProperties">
<props>
<prop key="directive.foreach.counter.name">loopCounter</prop>
<prop key="directive.foreach.counter.initial.value">0</prop>
</props>
</property>
</bean>
?2、设置解析velocity的视图
<bean id="viewResolver" class="org.springframework.
web.servlet.view.velocity.VelocityViewResolver">
<property name="suffix" value=".vm"/>
</bean>
注意:这里把Bean 的ID 设置为viewResolver 。这一点很重要,因为我们并没有配置DispatcherServlet 检测所有的视图解析器。如果要同时使用多个视图解析器,则你很可能需要将这个ID 改成某个更合适的名字(并且是惟一的),比如velocityViewResolver 。
?
对于非WEB应用,需要者爱application context中配置声明文件VelocityConfigurationFactoryBean
<bean id="velocityEngine" class="org.springframework.ui.velocity.VelocityEngineFactoryBean">
<property name="velocityProperties">
<props>
<prop key="resource.loader">class</prop>
<prop key="class.resource.loader.class">
org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader
</prop>
<prop key="velocimacro.library"></prop>
</props>
</property>
</bean>
?
?
?