资源列表
1.Velocity+Java部署
2.Velocity 模板引擎自动生成代码的例子
3.《Apache Velocity用户指南》官方文档中文
4.Velocity(Java模板引擎)学习笔记
5.The Apache Velocity Project Getting Started
6.本文基于 Velocity 1.7 版本撰写
基本模板语言语法使用
变量定义
#set($name="velocity")
等号后面的字符串Velocity引擎将重新解析,例如出现以$开始的字符串时,将做变量的替换。
#set($hello = "hello $name")
上面这个等式将会给$hello
赋值”hello velocity”
变量的使用
例如$name
,或${name}
(推荐)
对于复杂对象类型的变量
例如$person
,可以使用${person.name}
来访问 person
的 name
属性
值得注意的是,这里的${person.name}
并不是直接访问 person
的 name
属性,而是访问 person
的 getName()
方法,所以${person.name}
和${person.getName()}
是一样的
变量赋值
对于 Velocity 来说,变量是弱数据类型的,可以在赋了一个 String 给变量之后再赋一个数字或者数组给它。
可以将以下六种数据类型赋给一个 Velocity 变量:变量引用, 字面字符串, 属性引用, 方法引用, 字面数字, 数组列表
#set($foo = $bar)
#set($foo =“hello”)
#set($foo.name = $bar.name)
#set($foo.name = $bar.getName($arg))
#set($foo = 123)
#set($foo = [“foo”,$bar])
循环
在 Velocity 中循环语句的语法结构如下:
#foreach($element in $list)
This is $element
$velocityCount
#end
Velocity 引擎会将 list 中的值循环赋给 element 变量,同时会创建一个$velocityCount 的变量作为计数,从 1 开始,每次循环都会加 1.
条件语句
条件语句的语法如下
#if(condition)
...
#elseif(condition)
…
#else
…
#end
关系操作符
Velocity 引擎提供了 AND、OR 和 NOT 操作符,分别对应&&、||和! 例如:
#if($foo && $bar)
#end
宏
Velocity 中的宏可以理解为函数定义。定义的语法如下:
#macro(macroName arg1 arg2 …)
...
#end
调用这个宏的语法是:
#macroName(arg1 arg2 …)
这里的参数之间使用空格隔开,下面是定义和使用 Velocity 宏的例子:
#macro(sayHello $name)
hello $name
#end
#sayHello(“velocity”)
输出的结果为 hello velocity
#parse
和 #include
#parse
和 #include
指令的功能都是在外部引用文件,而两者的区别是,#parse
会将引用的内容当成类似于源码文件,会将内容在引入的地方进行解析,#include
是将引入文件当成资源文件,会将引入内容原封不动地以文本输出。分别看以下例子:
foo.vm 文件:
#set($name =“velocity”)
parse.vm:
#parse(“foo.vm”)
输出结果为:velocity
include.vm 文件:
#include(“foo.vm”)
输出结果为:#set($name =“velocity”)
var hello = world;
- [x] @mentions, #refs, links, formatting, and
tagssupported - [x] list syntax required (any unordered or ordered list supported)
- [x] this is a complete item
- [ ] this is an incomplete item
- [x]hello