NVelocity的基本用法

2022-01-23 01:09:52 字數 1805 閱讀 4293

nvelocity常用語法指令

預設情況下,nvelocity解析是不分大小寫的,當然可以通過設定runtime.strict.math=true,採用嚴格解析模式。
嚴格區分大小寫有時候還是挺有用途的。如果在模板檔案中有這樣的包含檔案,發布改模板的時候,就會提示#include後面沒有括弧()的錯誤。因為在nvelocity中,有#include("abc.html")這樣的指令。如果我們將include改為include就不會報錯了。
對變數的引用:$ [ ! ][ ]。

在nvelocity中,對變數的引用都是以$開頭加上變數名稱。當使用!時表示當此變數值為空時,顯示空字串。比如當$article為空,那會顯示「$article「,而$!article會顯示為「」。{}為變數名稱限定,有時候變數名稱後會有字串,這是就需要用到{}了。比如$articleshow,想引用$article,這時只要修改為$就可以。其實,nvelocity對整個模板解析後都會變成這種模式。

對屬性的引用:$ [ ] 。

例如$article.title或者$。

對方法的引用:$ [ ]。

例如:$article.getlistbytitle('nvelocity')或$。其實對物件的屬性值也可以用$article.get_title()獲得。

賦值指令#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:# [ ] ( [condition] ) [output] [ # [ ] ( [condition] ) [output] ]* [ # [ ] [output] ] # [ ] 。

條件可以是返回bool的複查表示式。例如:#if($article.total>1) $article.title #else 沒有資料 #end。

迴圈指令#foreach:# [ ] ($refinarg)statement# [ ]。

例如:#foreach($article in $articles) $article.title #end。

引用靜態資源指令#include:# [ ] ( arg[ arg2 ... argn] )。

例如:#include('tmp.js'),會把tmp.js檔案內容插入當前流。當然可以使用表示式:#include($article.url)。

引用並解析資源指令#parse:# [ ] ( arg )。

例如:#parse('tmp.js'),與#include不同是,假如tmp.js檔案中有nvelocity的指令,變數會進行處理,並把結果插入到當前流。

停止指令stop:# [ ] 。

當nvelocity解析到此指令時,會停止解析過程。一般使用者除錯。

計算指令#evaluate:# [ ] ( arg )。

例如:#evaluate('$article.title'),會在當前輸出$article.title

nvelocity的單例用法

目前nvelocity的典型用法是 建立乙個模板引擎 velocityengine vltengine new velocityengine 檔案型模板,還可以是 assembly 則使用資源檔案 vltengine.setproperty runtimeconstants.resource loa...

mysql 的基本用法 mysql基本用法

mysql 5.1 中文參考手冊 show databases 顯示資料庫 drop database 資料庫名 刪除資料庫 set names utf8 設定資料庫編碼為utf 8 source x 資料庫名.sql 匯入乙個資料庫 use 資料庫名 嘗試訪問資料庫 create database...

mysql 的基本用法 mysql基本用法

mysql 5.1 中文參考手冊 show databases 顯示資料庫 drop database 資料庫名 刪除資料庫 set names utf8 設定資料庫編碼為utf 8 source x 資料庫名.sql 匯入乙個資料庫 use 資料庫名 嘗試訪問資料庫 create database...