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

FreeMarker 進階學習:數據類型、序列、哈希表與 FTL 編程規範

     編輯:Java 綜合教學

FreeMarker 進階學習:數據類型、序列、哈希表與 FTL 編程規範

FreeMarker 支持的數據類型

  • 標量:字符串、數字、布爾值、日期
  • 容器:哈希表、序列、集
  • 子程序:方法和函數、用戶自定義指令
  • 其他:節點

關於「集」的補充:從模板設計者角度看,集是有限制的序列。無法獲取大小,也無法通過索引取出子變量,但仍可使用 list 指令遍歷。

方法與函數

用法與編程語言類似。例如調用計算平均值的方法 avg():

方法調用示例

此處直接調用 avg(3, 5) 計算平均值。

用戶自定義指令

即自定義的 FreeMarker 標簽:

自定義指令示例

FTL 模板三大組成部分

FreeMarker 編程代碼(即模板/FTL)大致包含三部分:文本、插值、FTL 標簽。詳細介紹請參閱《FreeMarker 初步學習》。

FTL三大組成部分

FTL 編程注意事項

  1. FTL 編程區分大小寫。
  2. 插值僅可在文本中使用。
  3. FTL 標簽不可嵌套在 FTL 標簽和插值中。
  4. 註釋可放在 FTL 標簽和插值中間。
  5. 指令嵌套語法基本同 HTML/XML,標簽以 # 開頭,自定義指令以 @ 開頭。
  6. 給插值提供值時,直接放在輸出文本位置即可。例如 ${(5+8)/2} 輸出 6.5。
  7. <#if expression> 表達式必須為布爾類型。
布爾值示例1 布爾值示例2 布爾值示例3

直接書寫 true 和 false 即表示布爾值,無需引號。

序列定義與用法

使用逗號分隔子變量,整體放入方括號:

序列定義示例

可用 start..end 定義數字範圍序列,如 2..5 等同於 [2,3,4,5]。前者內存佔用少、速度快、效率更高。

哈希表定義與數據檢索

在模板中指定哈希表,用逗號分隔「鍵/值」對,放入花括號。鍵值以冒號分隔。例如:

{"name":"green mouse","price":150}

假設哈希表結構如下:

哈希表示例

讀取 title 有兩種方式:

  1. book.title
  2. book["title"]

以下示例等價:

book.author.name
book["author"].name
book.author["name"]
book["author"]["name"]
哈希表多層訪問示例
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved