文章出處

NVelocity常用語法指令

默認情況下,NVelocity解析是不分大小寫的,當然可以通過設置runtime.strict.math=true,采用嚴格解析模式。
嚴格區分大小寫有時候還是挺有用途的。如果在模板文件中有<!--#include File="aaa.html"-->這樣的包含文件,發布改模板的時候,就會提示#include后面沒有括弧()的錯誤。因為在NVelocity中,有#include("abc.html")這樣的指令。如果我們將include改為Include就不會報錯了。

對變量的引用:$ [ ! ][ { ][ a..z, A..Z ][ a..z, A..Z, 0..9, -, _ ][ } ]。

在NVelocity中,對變量的引用都是以$開頭加上變量名稱。當使用!時表示當此變量值為空時,顯示空字符串。比如當$article為空,那會顯示“$article“,而$!article會顯示為“”。{}為變量名稱限定,有時候變量名稱后會有字符串,這是就需要用到{}了。比如$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}。

對方法的引用:$ [ { ][ 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.get_Title()獲得。

賦值指令#set:# [ { ] set [ } ] ( $ref = [ ", ' ]arg[ ", ' ] )。

例如:$article.Title='NVelocity',$$article.Categories=[1,2,3],當然右側也可以使用復雜的表達式:$article.Title=$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.Title #else 沒有數據 #end。

循環指令#foreach:# [ { ] foreach [ } ] ($refinarg)statement# [ { ] end [ } ]。

例如:#foreach($article in $articles) $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


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()