java velocity 语法_Velocity的基本语法
導(dǎo)航: 上一頁
先來看看velocity的語法:vtl也就是velocity的基本語言.用過腳本語言的,對(duì)于這個(gè)應(yīng)該會(huì)很容易上手,其實(shí),基本上,語法可以分為變量和關(guān)鍵詞。
定義變量:
變量使用$作為開頭符號(hào),$a 和${a}是一致的。在模版中聲明一個(gè)變量是很容易的,使用set關(guān)鍵字,例如:#set( $foo = "Velocity" )
對(duì)于velocity中,感覺比較靈活的就是變量中,可以直接使用方法,和javabean屬性一樣方便使用:
如下:$customer.Address,$purchase.Total,$customer.Address.phone。不過好像不支持map語法,如:a["key"]這種寫法,但是可以使用方法代替:a.get("key")。而使用了方法,感覺就在使用java代碼一樣方便。當(dāng)然變量中支持簡(jiǎn)單的表達(dá)式計(jì)算:$a+1等等。
有一點(diǎn)需要注意的是,如果變量沒有解析,還是會(huì)輸出$a這個(gè)變量,而不是空白或者報(bào)錯(cuò)。
關(guān)鍵字:
關(guān)鍵字使用#開頭。
其關(guān)鍵字也不多,只有少數(shù)的幾個(gè),但是已經(jīng)足夠用了。如前面的聲明變量:
#set
#if #elseif #else #end 這是最常用的條件判斷,每個(gè)判斷使用#end結(jié)尾
#if($a==1)true enough#{else}no way!#end
#foreach() #end用于循環(huán)輸出
#foreach( $key in $allProducts.keySet() )
Key: $key -> Value: $allProducts.get($key)#end
#include,用于包括一些資源文件,當(dāng)然include是不會(huì)去解析資源文件,這和#parse不同
#include( "one.txt" )
#parse,用于解析并且包括相應(yīng)的資源文件
#parse( "me.vm" ),和主文件共享相應(yīng)的Context
#stop,用于停止執(zhí)行解析,并返回,主要用于調(diào)試功能。
基本上,使用以上的語法,可以定義出任何的模版了。當(dāng)然,為了簡(jiǎn)化模版的定義,velocity特意推出了#macro這個(gè)強(qiáng)大的功能. #macro,類似于宏定義,用于自定義相應(yīng)的標(biāo)記。
如下定義了一段宏,用于輸出表格中的列表
#macro( tablerows $color $somelist )
#foreach( $something in $somelist )
$something#end
#end
在模板中,只需要使用#tablerows($color $somelist)就可以取代里面的代碼了:
#set( $greatlakes = ["Superior","Michigan","Huron","Erie","Ontario"] )
#set( $color = "blue" )
#tablerows( $color $greatlakes )
而且#macro 支持內(nèi)嵌語法,所以對(duì)于模版的定義,就變得更加的靈活而簡(jiǎn)單了。
參考資料
總結(jié)
以上是生活随笔為你收集整理的java velocity 语法_Velocity的基本语法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: shiro学习(15):使用注解实现权限
- 下一篇: webflow_Webflow是否适合开