程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> FreeMarker設計指南(2)

FreeMarker設計指南(2)

編輯:關於JAVA

FreeMarker設計指南(2)

2、數據模型

(1)基礎

l 在快速入門中介紹了在模板中使用的三種基本對象類型:scalars、hashes 和sequences,其實還可以有其它更多的能力:

Ø scalars:存儲單值

Ø hashes:充當其它對象的容器,每個都關聯一個唯一的查詢名字

Ø sequences:充當其它對象的容器,按次序訪問

Ø 方法:通過傳遞的參數進行計算,以新對象返回結果

Ø 用戶自定義FTL標記:宏和變換器

l 通常每個變量只具有上述的一種能力,但一個變量可以具有多個上述能力,如下面的例子:

(root)

|

+- mouse = "Yerri"

|

+- age = 12

|

+- color = "brown">

l mouse既是scalars又是hashes,將上面的數據模型合並到下面的模板:

${mouse} <#-- use mouse as scalar -->

${mouse.age} <#-- use mouse as hash -->

${mouse.color} <#-- use mouse as hash -->

l 輸出結果是:

Yerri

12

brown

(2)Scalar變量

l Scalar變量存儲單值,可以是:

Ø 字符串:簡單文本,在模板中使用引號(單引號或雙引號)括起

Ø 數字:在模板中直接使用數字值

Ø 日期:存儲日期/時間相關的數據,可以是日期、時間或日期-時間(Timestamp);通常情況,日期值由程序員加到數據模型中,設計者只需要顯示它們

Ø 布爾值:true或false,通常在<#if …>標記中使用

(3)hashes 、sequences和集合

l 有些變量不包含任何可顯示的內容,而是作為容器包含其它變量,者有兩種類型:

Ø hashes:具有一個唯一的查詢名字和它包含的每個變量相關聯

Ø sequences:使用數字和它包含的每個變量相關聯,索引值從0開始

l 集合變量通常類似sequences,除非無法訪問它的大小和不能使用索引來獲得它的子變量;集合可以看作只能由<#list …>指令使用的受限sequences

(4)方法

l 方法變量通常是基於給出的參數計算值

l 下面的例子假設程序員已經將方法變量avg放到數據模型中,用來計算數字平均值:

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)}

(5)宏和變換器

l 宏和變換器變量是用戶自定義指令(自定義FTL標記),會在後面講述這些高級特性

(6)節點

l 節點變量表示為樹型結構中的一個節點,通常在XML處理中使用,會在後面的專門章節中講述

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