NVelocity常用文法指令
對變量的引用:$ [ ! ][ { ][ a..z, A..Z ][ a..z, A..Z, 0..9, -, _ ][ } ]。
在NVelocity中,對變量的引用都是以開頭加上變量名稱。當使用!時表示當此變量值為空時,顯示空字元串。比如當開頭加上變量名稱。當使用!時表示當此變量值為空時,顯示空字元串。比如當article為空,那會顯示“article“,而article“,而!article會顯示為“”。{}為變量名稱限定,有時候變量名稱後會有字元串,這是就需要用到{}了。比如articleshow,想引用articleshow,想引用article,這時隻要修改為${article}就可以。其實,NVelocity對整個模闆解析後都會變成這種模式。
對屬性的引用:$ [ { ][ a..z, A..Z ][ a..z, A..Z, 0..9, -, _ ]* .[a..z, A..Z ][ a..z, A-Z, 0..9, -, _ ]* [ } ] 。
例如article.Title或者article.Title或者{article.Title}。
對方法的引用:$ [ { ][ a..z, A..Z ][ a..z, A..Z, 0..9, -, _ ]* .[ a..z, A..Z ][ a..z, A..Z, 0..9, -, _ ]*( [ optional parameter list... ] ) [ } ]。
例如:article.GetListByTitle(′nvelocity′)或article.GetListByTitle(′nvelocity′)或{article.GetListByTitle('nvelocity')}。其實對對象的屬性值也可以用$article.get_Title()獲得。
指派指令#set:# [ { ] set [ } ] ( $ref = [ ", ' ]arg[ ", ' ] )。
例如:article.Title=′NVelocity′,article.Title=′NVelocity′,article.Categories=[1,2,3],當然右側也可以使用複雜的表達式:article.Categories=[1,2,3],當然右側也可以使用複雜的表達式:article.Title=otherArticle.Title.SubString(0,3),算術表達式:otherArticle.Title.SubString(0,3),算術表達式:article.Page=4/3等等。屬性指派也可以用$article.set_Title('NVelocity')。
條件指令#if:# [ { ] if [ } ] ( [condition] ) [output] [ # [ { ] elseif [ } ] ( [condition] ) [output] ]* [ # [ { ] else [ } ] [output] ] # [ { ] end [ } ] 。
條件可以是傳回bool的複查表達式。例如:#if(article.Total>1)article.Total>1)article.Title #else 沒有資料 #end。
循環指令#foreach:# [ { ] foreach [ } ] ($refinarg)statement# [ { ] end [ } ]。
例如:#foreach(articleinarticleinarticles) $article.Title #end。
引用靜态資源指令#include:# [ { ] include [ } ] ( arg[ arg2 ... argn] )。
例如:#include('tmp.js'),會把tmp.js檔案内容插入目前流。當然可以使用表達式:#include($article.Url)。
引用并解析資源指令#parse:# [ { ] parse [ } ] ( arg )。
例如:#parse('tmp.js'),與#include不同是,假如tmp.js檔案中有NVelocity的指令,變量會進行處理,并把結果插入到目前流。
停止指令stop:# [ { ] stop [ } ] 。
當NVelocity解析到此指令時,會停止解析過程。一般使用者調試。
計算指令#evaluate:# [ { ] evaluate [ } ] ( arg )。
例如:#evaluate('article.Title′),會在目前輸出article.Title′),會在目前輸出article.Title
.本文轉自 夢在旅途 部落格園部落格,原文連結:http://www.cnblogs.com/zuowj/p/3312208.html ,如需轉載請自行聯系原作者