velocity注释
注释的代码将不会被引擎渲染输出,velocity有3种注释。
1,单行注释:
## 这是单行注释2,多行注释:
这里是多行注释
这里是多行注释
*#
3,文档格式:
这里是多行注释,
对文档、作者、版本等的说明。
*#
注意:将“#”换成“/”就是大家熟悉的 java 注释 “//”、“/* ”、“/**”。
velocity变量
变量引用以"$"号开头,变量区分大小写。
命名规则:变量名由字母、数字、下划线(_)与中划线(-)组成,但第一个字符必须是大写或者小写的字母
变量有2种引用方式: $变量名
和 ${变量名}
,小括弧用于区分变量名与常量值
## 小括弧用于区分变量名与常量值:有变量a值为hi, 变量ab值为hello
$ab ## 变量为ab,输出: hello
${ab} ## 变量为ab,输出: hello
${a}b ## 变量为a,b是常量值,输出: hib
## 通过.引用变量属性:有对象a,a有属性b=xyz
$a.b ## 变量属性a.b,输出: xyz
${a.b} ## 变量属性a.b,输出: xyz
${a}.b ## 变量为a,“.b”是常量值,输出: 对象字符串值.b
若变量为null或未定义则将本身作为文本输出,即 $c 输出结果为$c, ${c}输出结果为${c}
若$后紧跟!表示当null或未定义时输出为空字符串,即 $!c 和 $!{c} 的输出结果为空字符。
注意:velocity变量的第一个字符是大写或者小写的字母,故$2.5是美元,不是变量,变量第一个字符是字母。
velocity常用指令
指令以"$"号开头
1,变量赋值:#set
#set($name="velocity")
#set($colors=["red","yellow","blue"])
2,条件判断:#if #elseif #else #end
#if("$!colour"="yellow")
This is yellow colour.
#elseif("$!colour"="red")
This is red colour.
#else
This is other colour.
#end
3,for循环:#foreach
4,停止执行并返回,一般用于debug:#stop
5,定义宏(宏可以理解成函数):#macro
宏的定义:
#macro(宏名 $参数1 $参数2...)
语句体(即函数体)
#end
宏的调用:#宏名($参数1 $参数2...)
注意:参数之间是用空格隔开的,#macro 支持内嵌语法。
举例:如下定义了一段宏,用于输出表格中的列表
#macro( tablerows $color $somelist )
#foreach( $something in $somelist )
<tr><td bgcolor=$color>$something</td></tr>
#end
#end
在模版中,只需要使用 #tablerows($color $somelist) 就可以取代里面的代码了:
6,引入本地文件:#include与#parse
区别:
(1)#parse 只能指定单个对象;#include可以引入多个文件,多个文件用逗号分隔,文件可以是文件名,也可以是变量,如 #include("book.txt",$book)
(2)#parse 引入的文件内容会通过velocity模块引擎解析,但是#include不会(3)#parse可以递归调用
velocity逻辑运算符
and 、or、 not
velocity内置对象
$request、$response、$session