Velocity模板引擎語法


Velocity 模板引擎介紹

Velocity是一個基於java的模板引擎(template engine)。它允許任何人僅僅簡單的使用模板語言(template language)來引用由java代碼定義的對象。當Velocity 應用於web開發時,界面設計人員可以和java程序開發人員同步開發一個遵循MVC架構的web站點,也就是說,頁面設計人員可以只關注頁面的顯示效果,而由java程序開發人員關注業務邏輯編碼。

引入Velocity的發布包

http://velocity.apache.org/網站上下載最新的Velocity,引入jar包。

Velocity基本語法

"#"用來標識Velocity的關鍵字,包括#set、#if 、#else、#end、#foreach、#end、#include、#parse、#macro等;

"$"用來標識Velocity的變量;如:$i$msg$TagUtil.options(...)等。

"{}"用來明確標識Velocity變量;比如在頁面中,頁面中有一個$someonename,此時,Velocity將把someonename作為變量名,若我們程序是想在someone這個變量的后面緊接着顯示name字符,則上面的標簽應該改成${someone}name。

"!"用來強制把不存在的變量顯示為空白。如:當找不到username的時候,$username返回字符串"$username",而$!username返回空字符串""

Velocity語法使用

一、變量定義

#set($name ="velocity")

等號后面的字符串 Velocity 引擎將重新解析,例如出現以$開始的字符串時,將做變量的替換。

二、變量賦值

#set($hello ="hello $name")

上面的這個等式將會給$hello賦值為"velocity"

三、循環

#foreach($element in $list) 
    <span>$!element</span><br>
#end

Velocity引擎會將list中的值循環賦給element變量

四、條件語句

條件語句的語法如下:

#if(condition)
...
#elseif(condition)
…
#else
…
#end

五、關系操作符

Velocity引擎提供了AND、OR和NOT操作符,分別對應&&、||和!例如:

#if($foo && $bar)
...
#end

六、宏

Velocity中的宏可以理解為函數定義。定義的語法如下:

#macro(macroName arg1 arg2 ...)
...
#end

調用這個宏的語法是:

#macroName(arg1 arg2 ...)

這里的參數之間使用空格隔開,下面是定義和使用Velocity宏的例子:

#macro(sayHello $name)
    hello $name
#end

#sayHello("velocity")

輸出的結果為hello velocity

七、#parse 和 #include

#parse和#include指令的功能都是在外部引用文件,而兩者的區別是,#parse會將引用的內容當成類似於源碼文件,會將內容在引入的地方進行解析,#include 是將引入文件當成資源文件,會將引入內容原封不動地以文本輸出。分別看以下例子:

 foo.vm文件:

#set($name = "velocity")

parse.vm:

#parse("foo.vm")

輸出結果為:velocity

include.vm:

#include("foo.vm")

輸出結果為:#set($name = "velocity")

八、注釋

單行注釋

##單行注釋

多行注釋

#*
    多行注釋
*#

九、單雙引號

單引號不解析引用內容,雙引號解析引用內容

#set ($var="hello")

'$var'  ## 結果為:$var
"$var"  ## 結果為:hello

十、屬性

通過'.'操作符使用變量內容

$Identifier.Identifier
$user.name

 

本文參考

http://www.ibm.com/developerworks/cn/java/j-lo-velocity1/

http://outofmemory.cn/code-snippet/1623/Velocity-syntax-usage-summary


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM