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