程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> NVelocity系列:NVelocity的語法及指令

NVelocity系列:NVelocity的語法及指令

編輯:關於ASP.NET

我喜歡在Asp.Net MVC中使用NVelocity View Engine的一個很重要的理由就是 :NVleocity簡潔易用的語法。幾乎使用#set,#if,#foreach就可以構成完整的 應用,下面就介紹一下NVelocity中的語法及常用指令。

默認情況下,NVelocity解析是不分大小寫的,當然可以通過設置 runtime.strict.math=true,采用嚴格解析模式。

對變量的引用:$ [ ! ][ { ][ 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。

以上是NVelocity的常用指令,下一篇將會講NVelocity Macro的使用和如何開 發User Directive。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved