變量的定義
#set($name = "hello")
變量引用盡量規(guī)范
Java is Hello ${name}
變量賦值
#set($P{monkey.Friend="monica"}) //這是賦值一個(gè)string
注意:
1.如果右邊值是null,則左邊不會(huì)被賦值,會(huì)保留以前的值
2.velocity模板不會(huì)將reference解釋為對(duì)象的實(shí)例變量
例如: $foo.Name 將被解釋為Foo對(duì)象的getName()方法,而不是Foo對(duì)象的Name實(shí)例變量
循環(huán)
#foreach ($element in $list)
This is $element
$velocityCount //這個(gè)表示的數(shù)量
#end
條件語(yǔ)句
#if(condition)
#else if(condition)
#else
#end
語(yǔ)句的嵌套
#foreach($element in $list)
## 內(nèi)部循環(huán)
#foreach ($element in $list)
$element
#end
## 外部循環(huán)
$element
#end
注釋
(1) 單行注釋
## 表示單行注釋
(2) 多行注釋
#* 這是多行注釋*#
(3) 文檔格式注釋
#** 這是文檔注釋
@version 1.1
@author minglangx
*#
關(guān)系和邏輯操作符
#if($foo && $bar)
This AND that
#end
Velocity中的宏
Velocity中的宏我們可以理解為函數(shù)
(1) 宏的定義
#marcro(宏的名稱 $參數(shù)1 $參數(shù)2....)
語(yǔ)句體
#end
(2) 宏的調(diào)用
#宏的名稱($參數(shù)1 $參數(shù)2...)
說(shuō)明: 參數(shù)之間用空格隔開(kāi)
#stop
停止執(zhí)行模板引擎并返回,把它應(yīng)用于debug調(diào)試
#include與#parse
都是引入本地文件,為了安全,被引入的本地文件只能在TEMPLATE_ROOT目錄下男娄。
區(qū)別:
(1) #include可以引入多個(gè)文件,可以用逗號(hào)分隔卖漫。
#include("one.gif","two.txt","three.htm")
在括號(hào)內(nèi)可以是文件名,但是更多的是使用變量
#include($test)
(2) include被引入的文件的內(nèi)容將不會(huì)通過(guò)模板引擎解析
而#parse引入的文件內(nèi)容Velocity將解析其中的velocity語(yǔ)法并移交給模板意思就是直接將引入文件的內(nèi)容復(fù)制到當(dāng)前文件中
例如: 當(dāng)前文件 dofoo.vm
Count down.
#set ($count=8)
## 這里引用了一個(gè)vm文件直接追加到當(dāng)前代碼中
#parse("parsefoo.vm")
ALL done with dofoo.vm!
那么在parsefoo.vm模板中,你輸入一下內(nèi)容
$count
#set ($count = $count -1 )
#if ($count > 0)
#parse("parsefoo.vm")
#else
ALL done with parsefoo.vm!
#end
最后顯示結(jié)果:
Count down.
8
7
6
5
4
3
2
1
0
All done with parsefoo.vm!
All done with dofoo.vm!
10. 轉(zhuǎn)義字符 ''的使用
如果引用被定義, 兩個(gè)'\‘只會(huì)輸出一個(gè)'',如果未被定義,剛按原樣輸出. 例如:
#set($email = "foo" )
$email
\$email
\\$email
\\\$email
輸出:
foo
\$email
\foo
\$email
如果$email 未定義
$email
\$email
\\$email
\\\$email
內(nèi)置對(duì)象
Velocity內(nèi)置了一些對(duì)象,在vm模板里可以直接調(diào)用,例如:$request膳叨、$response武契、$session
數(shù)組訪問(wèn)
如果需要訪問(wèn)特定的元素需要傳入相應(yīng)的下標(biāo)