velocity语法
1.聲明變量 #set($var = XXX) 右邊可以是以下的內(nèi)容 Variable reference String literal Property reference Method reference Number literal #set ($i=1) ArrayList #set ($arr=["yt1","t2"]) 技持算術(shù)運(yùn)算符
2、注釋: 單行## XXX 多行#* xxx xxxx xxxxxxxxxxxx*#
3、變量 Variables 以 "$" 開頭,第一個字符必須為字母。character followed by a VTL Identifier. (a .. z or A .. Z). 變量可以包含的字符有以下內(nèi)容: alphabetic (a .. z, A .. Z) numeric (0 .. 9) hyphen ("-") underscore ("_")
4、Properties $Identifier.Identifier $user.name hashtable user中的的name值.類似:user.get("name")
5、Methods object user.getName() = $user.getName()
6、Formal Reference Notation 用{}把變量名跟字符串分開
如 #set ($user="csy"} ${user}name 返回csyname
$username $!username $與$!的區(qū)別 當(dāng)找不到username的時候,$username返回字符串"$username",而$!username返回空字符串""
7、雙引號 與 引號 #set ($var="helo") test"$var" 返回testhello test'$var' 返回test'$var' 可以通過設(shè)置 stringliterals.interpolate=false改變默認(rèn)處理方式
8、條件語句 #if( $foo ) <strong>Velocity!</strong> #end #if($foo) #elseif() #else #end 當(dāng)$foo為null或為Boolean對象的false值執(zhí)行.
9、邏輯運(yùn)算符:== && || !
10、循環(huán)語句#foreach($var in $arrays ) // 集合包含下面三種Vector, a Hashtable or an Array #end #foreach( $product in $allProducts ) <li>$product</li> #end
#foreach( $key in $allProducts.keySet() ) <li>Key: $key -> Value: $allProducts.get($key)</li> #end
#foreach( $customer in $customerList ) <tr><td>$velocityCount</td><td>$customer.Name</td></tr> #end
11、velocityCount變量在配置文件中定義 # Default name of the loop counter # variable reference. directive.foreach.counter.name = velocityCount # Default starting value of the loop # counter variable reference. directive.foreach.counter.initial.value = 1
12、定義宏Velocimacros ,相當(dāng)于函數(shù) 支持包含功能 #macro( d ) <tr><td></td></tr> #end 調(diào)用 #d()
13、帶參數(shù)的宏 #macro( tablerows $color $somelist ) #foreach( $something in $somelist ) <tr><td bgcolor=$color>$something</td></tr> #end #end 調(diào)用 # tablerows (“red” “…”)
項目開發(fā)中需要注意到的要點: 1. vm中顯示變量,一律加!和{},如:$!{userName}、$!{userVO.name}、$!{userVO.getName()}、$!{userMap.get(“Bob”)} 2. 合并字符串 如果變量是字符串或數(shù)值型,如 #set($user = “Tester”),則應(yīng)為 “welecom$!{user}”,而不是 “welcome” + $user 3. #if($var)條件判斷,當(dāng)且僅當(dāng):$var存在(如果$var是Boolean/boolean型,還必須$var的值為Boolean.true/true)時,條件才成立 4. #foreach()循環(huán)的時候,有個系統(tǒng)變量$velocityCount可直接使用,不必自己設(shè)定額外的計數(shù)器 5. 比較字符串相等,#if($var == “test”)?? #if(“test”.equals($var))均可, 6. vm中生成URL #set($userName = “Bob”) “$offerModule.setTarget('modifySingleOffer.vm').addQueryData(‘userName’, $userName).fork()” “$offerModule.setTarget('modifySingleOffer.vm').addQueryData(‘userName’, ‘Bob’).fork()” 目標(biāo)大致如:http://127.0.0.1/offer/modifySingleOffer.htm?userName=Bob?7. vm中調(diào)用control $control.setTemplate("home:pageNavigator.vm").setParameter("position", "top").setParameter("pageList", $pageList) 8.其它可能會被使用到的,如定義自己的宏(定義和修改宏,需要重新啟動應(yīng)用服務(wù)器才生效)
總結(jié)
以上是生活随笔為你收集整理的velocity语法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 今天收到了一束花,里面有小雏菊勿忘我满天
- 下一篇: 二手车交易还需要交购置税吗