天天看點

NVelocity的基本用法

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  ,如需轉載請自行聯系原作者

繼續閱讀