首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

FreeMarker 設計指南 (二):資料模型核心類型與方法

     編輯:Java 相關知識

資料模型五大能力

模板可存取的變數具備下列一種或多種能力:

能力說明模板存取方式
Scalar單一值 (字串/數字/日期/布林)${var}
Hash鍵值容器,以名稱查詢hash.key 或 hash["key"]
Sequence有序容器,以索引查詢seq[0]
Method接受參數回傳結果method(arg1, arg2)
使用者定義指令巨集/轉換器<@macro>

多重能力範例

(root)
|- mouse = "Yerri"   (Scalar)
|- mouse.age = 12    (Hash)
|- mouse.color = "brown"

模板:
${mouse}           <!-- Yerri -->
${mouse.age}       <!-- 12 -->
${mouse.color}     <!-- brown -->

Scalar 細分

  • 字串:模板中用引號 "text"
  • 數字:直接書寫 123, 3.14
  • 日期:通常由程式放入模型,模板只負責顯示
  • 布林:true/false,常用於 <#if>

Hash、Sequence 與 Collection

  • Hash:鍵唯一,如 {name:"A", age:10}
  • Sequence:有序、可索引、可取長度,如 ["a","b","c"]
  • Collection:類似 Sequence 但無長度與索引,僅能用 <#list> 迭代

Method 範例

假設資料模型放入 avg 方法:

The average of 3 and 5 is: ${avg(3, 5)}
The average of 6,10,20 is: ${avg(6, 10, 20)}
${avg(animals.python.price, animals.elephant.price)}

節點變數

表示樹狀結構節點 (XML 處理常用),後續專章說明。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved