目錄(?)[-] 一Freemarker的介紹 二Freemarker的準備條件 三Freemarker產生靜態頁面的原理 四Freemarker提供的標籤 五Freemarker自訂標籤 原創作品,允許轉載,轉載時請務必以超連結形式標明文章 原始出處 、作者資訊和本人聲明。否則將追究法律責任。
作者: 永恒の_☆ 地址: http://blog.csdn.net/chenghui0317/article/details/7832474 一、Freemarker的介紹
Freemarker 是一款模板引擎,是一種基於模版產生靜態檔案的通用 工具,它是為java程式員提供的一個開發包,或者說是一個類庫,它不是面向終端使用者的,而是為程式員提供了一款可以嵌入他們開發產品的應用程式。
Freemarker 是使用純java編寫的,為了提高頁面的訪問速度,需要把頁面靜態化, 那麼Freemarker就是被用來產生html頁面。
到目前為止,Freemarker使用越來越廣泛,不光光只是它強大的產生技術,而且它能夠與spring進行很好的整合。
現在開始一層層揭開它的神秘面紗。。
二、Freemarker的準備條件
freemarker.2.3.16.jar 下載地址:http://download.csdn.net/detail/ch656409110/4494067 (這個jar包其實在struts2裡面)
三、Freemarker產生靜態頁面的原理
Freemarker 產生靜態頁面,首先需要使用自己定義的模板頁面,這個模板頁面可以是最最普通的html,也可以是嵌套freemarker中的 取值運算式, 標籤或者自訂標籤等等,然後後台讀取這個模板頁面,解析其中的標籤完成相對應的操作, 然後採用索引值對的方式傳遞參數替換模板中的的取值運算式,做完之後 根據配置的路徑產生一個新的html頁面, 以達到靜態化訪問的目的。
四、Freemarker提供的標籤
Freemarker提供了很多有用 常用的標籤,Freemarker標籤都是<#標籤名稱>這樣子命名的,${value} 表示輸出變數名的內容 ,具體如下:
1、list:該標籤主要是進行迭代伺服器端傳遞過來的List集合,比如: [html] view plain copy print ? <#list nameList as names> ${names} </#list>
name是list迴圈的時候取的一個迴圈變數,freemarker在解析list標籤的時候,等價於:
[java] view plain copy print ? for (String names : nameList) { System.out.println(names); } 2、 if: 該標籤主要是做if判斷用的,比如:
[html] view plain copy print ? <#if (names=="陳靖仇")> 他的武器是: 十五~~ </#if> 這個是條件判斷標籤,要注意的是條件等式必須用括弧括起來, 等價於:
[java] view plain copy print ? if(names.equals("陳靖仇")){ System.out.println("他的武器是: 十五~~"); }
3、 include:該標籤用於匯入檔案用的。
[html] view plain copy print ? <#include "include.html"/>
這個匯入標籤非常好用,特別是頁面的重用。
另外在靜態檔案中可以使用${} 擷取值,取值方式和el運算式一樣,非常方便。
下面舉個例子(static.html):
[html] view plain copy print ? <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">