在快速入門中介紹了在模板中使用的三種基本對象類型:scalars、hashes 和sequences,其實還可以有其它更多的能力:
scalars:存儲單值
hashes:充當(dāng)其它對象的容器,每個都關(guān)聯(lián)一個唯一的查詢名字
sequences:充當(dāng)其它對象的容器,按次序訪問
方法:通過傳遞的參數(shù)進(jìn)行計算,以新對象返回結(jié)果
用戶自定義FTL標(biāo)記:宏和變換器
通常每個變量只具有上述的一種能力,但一個變量可以具有多個上述能力,如下面的例子:
(root) | +- mouse = "Yerri" | +- age = 12 | +- color = "brown">
mouse既是scalars又是hashes,將上面的數(shù)據(jù)模型合并到下面的模板:
${mouse} <#-- use mouse as scalar --> ${mouse.age}<#-- use mouse as hash --> ${mouse.color} <#-- use mouse as hash -->
輸出結(jié)果是:
Yerri
12
brown
Scalar變量存儲單值,可以是:
字符串:簡單文本,在模板中使用引號(單引號或雙引號)括起
數(shù)字:在模板中直接使用數(shù)字值
日期:存儲日期/時間相關(guān)的數(shù)據(jù),可以是日期、時間或日期-時間(Timestamp);通常情況,日期值由程序員加到數(shù)據(jù)模型中,設(shè)計者只需要顯示它們
布爾值:true或false,通常在<#if …>標(biāo)記中使用
有些變量不包含任何可顯示的內(nèi)容,而是作為容器包含其它變量,者有兩種類型:
hashes:具有一個唯一的查詢名字和它包含的每個變量相關(guān)聯(lián)
sequences:使用數(shù)字和它包含的每個變量相關(guān)聯(lián),索引值從0開始
集合變量通常類似sequences,除非無法訪問它的大小和不能使用索引來獲得它的子變量;集合可以看作只能由<#list …>指令使用的受限sequences
方法變量通常是基于給出的參數(shù)計算值。
下面的例子假設(shè)程序員已經(jīng)將方法變量avg放到數(shù)據(jù)模型中,用來計算數(shù)字平均值:
The average of 3 and 5 is: ${avg(3, 5)} The average of 6 and 10 and 20 is: ${avg(6, 10, 20)} The average of the price of python and elephant is: ${avg(animals.python.price, animals.elephant.price)}
宏和變換器變量是用戶自定義指令(自定義FTL標(biāo)記),會在后面講述這些高級特性
節(jié)點變量表示為樹型結(jié)構(gòu)中的一個節(jié)點,通常在XML處理中使用
posted on 2011-12-16 11:04
kxbin 閱讀(890)
評論(0) 編輯 收藏 所屬分類:
FreeMarker