Velocity 是一个基于Java的模板引擎,它的作用就是取得数据并加以处理,最后显示出数据。Velocity模板使用VTL(Velocity模板语言)编写的。
在Velocity中,符号和 #是VTL的特殊字符,会被解释成VTL引用或指令的开头。其中引用是以开头的,指令是以#开头的。
1、引用
VTL有三种类型的引用,分别是变量、属性和方法,与此同时,在VTL中所有类型在模板中都会被解析为String,假设有一个对象${age}在Java代码中是整型,则Velocity将会调用它的.toString()方法将其转换为String。
(1)变量
变量的使用方法有两种,一种是非正式的,如$age,还有一种是正式引用法,如 age。当变量与文本紧挨着时,为了避免变量名被错误解析,一般会使用正式引用法,如:Lucyis∗∗ **{age} years old.
(2)属性
VTL变量的属性和其他语言类似,变量名之后紧接一个“.”和另一个变量标识符,如:
user.Address
{user.Address} //正式格式
它的两个含义,可以表示查找标识符为user的哈希表并返回键为Address相应的值,也可以意指引用一个方法。
(3)方法
VTL的方法与其他语言也相差无几,方法同样是以
开关,后接VTL标识符和VTL方法体,最后有一对括号,括号内输入可选的参数列表。如:
user.getAddress()
user.setUsername(“ZhangSan”)
{user.getAddress()} //正式格式
2、指令
VTL引用使得模板编写者能够为WEB动态的生成内容,指令总是以#开头,也可以用花括号{}包围,例如:当a等于1时输出true enough,否则输出no way,则可以写为:#if(a = = 1) true enough #{else} no way #end。(这里讲else加上花括号{},是为了方式#elseno被解析成一个引用)