Basic Velocity
关于Velocity的基础语法
Velocity是一个基于java的模板引擎(template engine),它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象。作为一个比较完善的模板引擎,Velocity的功能是比较强大的,但强大的同时也增加了应用复杂 性。这里简单Velocity脚本的基本语法:
1、参数的设置
可以自定义参数。参数开始于$
1  | 写法 当值为空值当时候 使用方法  | 
参数所能使用的文字,参数只能使用下面的文字:
1  | ・a-z A-Z  | 
参数的话就可以单纯用$name和使用花括号圈起来的写法${name},如果在只是英文数字的文字列中间插入参数的话,必须使用花括号。
例:abc${D}efg
2.注释
一行的注释:使用##
1  | ##comment  | 
多行的注释:使用#*开始, 使用#*结束。
1  | #*  | 
3.读取别的文件
- 读取VM文件
在头部或尾部分别读取文件的话,使用#parse.1
2
3#parse("body_header.vm.html")
$data
#parse("body_footer.vm.html") 
文件的位置是与该文件的相对位置。如果不是直接放置在根目录而是全部放置在template文件夹里的情况下,需要在Velocity初始化之前指定路径,否则可能会出现错误信息。
1  | Velocity.setProperty("file.resource.loader.path","template" );  | 
错误信息
1  | org.apache.velocity.exception.ResourceNotFoundException: Unable to find resource  | 
3.读取一般的TEXT
如果是读取一般的普通文档的话,使用#include.
1  | #include("test.vm")  | 
4.循环
循环使用foreach,值 in list名.在循环的最后必须要使用#end
1  | #foreach ($data in $list)  | 
关于循环中的index号码,的话可以使用velocityCount来计算进入循环的次数.
1  | #foreach( $title in ["a","b","c"] )  | 
运行结果:
1  | a 1 true b 2 true c 3 false  | 
关于多重数列的index
1  | <table border=1>  | 
运行结果
1  | 1 0-0 a 0-1 b  | 
在循环的最初和途中和最后的分支.
1  | #foreach( $value in ["a","b","c","d"])  | 
运行结果
1  | 最初 a 途中 b 途中 c 最後 d  | 
从loop开始的break
Velocity1.6以后的版本允许在loop中使用break,来进跳出循环.
1  | #foreach( $title in $titles )  | 
4. 条件文
if条件, 最后一定要写#end:
1  | #if($value > 3)  | 
else if 和 else
1  | #if( $age < 20 )  | 
null的条件文
1  | #if($value)  |