Freemarker概述

一、Freemarker概述

FreeMarker是一個模板引擎,一個基於模板生成文本輸出的通用工具,使用純Java編寫

FreeMarker被設計用來生成HTML Web頁面,特別是基於MVC模式的應用程序

雖然FreeMarker具有一些編程的能力,但通常Java程序準備要顯示的數據,由FreeMarker生成頁面,通過模板顯示準備的數據


二、模版+模型數據=輸出

1、數據模型:

典型的數據模型是樹型結構,可以任意複雜和深層次。

對內層變量的訪問,需要從root開始,各部分用“.”分隔。

也有另外一種變量是使用數字索引,例如animals[0].name。

 

2、模版:

FreeMarker模板中可以包括下面三種特定部分: 

(1) ${…}:稱爲interpolationsFreeMarker會在輸出時用實際值進行替代

(2) FTL標記FreeMarker模板語言標記):類似於HTML標記,爲了與HTML標記區分,#開始(有些以@開始) 

①If/elseif/else指令 

  <#if animals.python.price < animals.elephant.price>   

   Pythons are cheaper than elephants today. 

  <#else> 

   Pythons are not cheaper than elephants today. 

  </#if> 

  空值判斷可以寫成<#if book.name?? >

switch指令

  <#switch value> 

  <#case refValue1> 

  ... 

  <#break> 

③list指令

  <#list animals as being> 

   <td>${being.name}<td>

  </#list>

④include指令

  <#include "/copyright_footer.html"> 

(3) 註釋:包含在<#-- -->


注意事項:

  •  FTL區分大小寫,所以list是正確的FTL指令,而List不是;${name}和${NAME}是不同的; 
  •  Interpolation只能在文本中使用; 
  •  FTL標記不能位於另一個FTL標記內部; 
  •  註釋可以位於FTL標記和Interpolation內部;  
  •  多餘的空白字符會在模板輸出時移除;
  •  FreeMarker會忽略FTL標記中的空白字符;




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章