转载自 http://blog.csdn.net/cpf2016/article/details/45565525
(1)基本语法
1.#
对于Velocity中的关键字,都是使用#开头的(想象手机上的#键,就是为了开启某功能)。
如#set、#if、#else、#end、#foreach等
实例:
2.$
对于变量,都是使用$开头的
如:$name、$msg
3.{}
对于需要明确表示的Velocity变量,可以使用{}将变量包含起来
如在页面中,需要有$someoneName这种内容,此时为了让Velocity能够区分,可以使用${someone}Name
4.!
如果某个Velocity变量不存在,那么页面中就会显示$xxx的形式,为了避免这种形式,可以在变量名称前加上!
如页面中含有$msg,如果msg有值,将显示msg的值;如果不存在就会显示$msg。这是我们不希望看到的,为了把不存在的变量显示为空白,可以使用$!msg
(2)变量
1.变量定义
#set($name = "hello")
例子:
结果为www/index
2.变量赋值
$name = "hello"
赋值的左边必须是一个变量,或者是属性的引用。右边可以是:变量引用、字面字符串、属性引用、方法引用、字面数字、数组
注意:velocity会将属性解释为属性的get方法,如:
$foo.Bar 等同于 $foo.getBar()
$foo.User("join") 等同于 $foo.getUser("join")
$foo.Request.ServerName 等同于 $foo.getRequest().getServerName()
(2)循环
1.格式与实例
格式为:
举例
结果为:
1 this is yes.
2 this is no.
3 this is not sure.
注意:$velocityCount是Velocity中定义的方法,用来获得循环次数,直接调用即可
2.根据次数来循环
直接在原来集合位置定义数字范围即可例1-正序:
结果为:
this is 1.
this is 2.
this is 3.
this is 4.
this is 5.
例2-逆序:
结果为:
this is 3.
this is 2.
this is 1.
this is 0.
this is -1.
this is -2
3.遍历map
使用entrySet,转化为遍历set即可结果为:
1 : abc
2 : bbc
3 : cbc
4 : dbc
5 : ebc
(3)条件语句
1.格式
注意:判空为#if($foo)
2.实例
(4)关系和逻辑操作符
1.&&
只有当$foo和$bar全都不为空的时候才会执行2.||
只要有一个不为空,就会执行
3.!
和java相同,取反
(5)宏
1.定义
2.调用
说明:参数之间用空格隔开
3.实例
调用:
(6)调用实例方法
1.定义
如果context中存储的是类实例,那么就可以调用类方法
2.实例
方法 定义:
赋值:
vm中:
(7)转义字符'\'
如果reference,2个'\'意味着输出一个'\'
结果为:
foo $mail \foo \$mail
(8)内置对象
Velocity内置了一些对象,在vm中可以直接调用,如:$request,$response,$session
(9)注释
1.单行注释##
2.多行注释#* *#