Velocity是什么
Velocity是一个基于java的模板引擎,类似与Freemarker。
为啥要用模板引擎
- 模板引擎的速度要比jsp快,因为JSP需要编译成servlet。
- 将数据(Date)和模板(View)分离,让不同的角色只关注自己的部分。
Velocity和Freemarker的比较
- 功能上:FreeMarker的功能比Velocity多,是Velocity的超集。
- 使用上:Velocity更加简单和轻量级。
Velocity Template Language (VTL)
基本原则
:使用$字符开始的用于得到什么;使用#字符开始的用于作些什么。如下
a) 变量:#set( $foo = "gibbous" ) $moon = $foo
b) 属性:$customer.Address
c) 方法:$customer.getAddress()
注意感叹号!:用来强制把不存在的变量显示为空白,所以强烈建议加上!,如$!message。在Freemarker里也建议这样。
其他的在使用中可以参考文档
Velocity学习指南.doc
。
Velocity的工作原理
三步了解Velocity的大致原理。
我觉得Velocity是由上至下逐行扫描模板,当扫描到占位符(如$和#)的时候,通过JAVA的反射机制(或者cglib直接生成字节码)调用JAVA的属性和方法,生成最终数据。
学习资料
官方网址: http://velocity.apache.org/engine/releases/velocity-1.7/