Velocity简介
见参考文献1.
Velocity使用
需要配置Velocity引擎
在spring-mvc.xml中配置:
<!-- 对模型视图名称的解析,即在模型视图名称添加前后缀 -->
<bean class="org.springframework.web.servlet.view.velocity.VelocityLayoutViewResolver">
<property name="suffix" value=".vm"/>
<property name="cache" value="false"/>
<property name="contentType" value="text/html;charset=UTF-8"/>
<property name="viewClass" value="org.springframework.web.servlet.view.velocity.VelocityLayoutView"/>
<property name="layoutUrl" value="layout/default.vm"/>
</bean>
<!-- velocity配置文件 -->
<bean id="velocityConfig" class="org.springframework.web.servlet.view.velocity.VelocityConfigurer">
<!--配置文件位置-->
<property name="resourceLoaderPath">
<value>/WEB-INF/vm/</value>
</property>
<!--配置资源位置,由于Velocity的配置选项较多,放在单独的velocity.properties中比较合适-->
<property name="configLocation" value="classpath:velocity.properties"/>
</bean>
其中典型的velocity.properties配置文件为:
# 设置输入/输出的编码
input.encoding = UTF-8
output.encoding = UTF-8
directive.foreach.counter.name = velocityCount
Velocity 真正的工作原理
Velocity 解决了如何在 Servlet 和 网页之间传递数据的问题,当然这种传输数据的机制是在 MVC 模式上进行的,也就是View 和 Modle , Controller 之间相互独立工作,一方的修改不影响其他方变动,他们之间是通过环境变量(Context)来实现的,当然双方网页制作一方和后台程序一方要相互约定好对所传递变量的命名约定,比如上个程序例子中的 site, name 变量,它们在网页上就是 name, site 。 这样只要双方约定好了变量名字,那么双方就可以独立工作了。 无论页面如何变化,只要变量名不变,那么后台程序就无需改动,前台网页也可以任意由网页制作人员修改。这就是 Velocity 的工作原理。