Freemarker學習筆記

2022-09-10 03:18:08 字數 3766 閱讀 4573

在pom.xml中新增依賴jar包

org.freemarker

freemarker

2.3.31

新增jetty外掛程式

org.eclipse.jetty

jetty-m**en-plugin

9.2.1.v20140609

在web.xml檔案中新增以下內容

freemarker

freemarker.ext.servlet.freemarkerservlet

templatepath

/default_encoding

utf-8

freemarker

*.ftl

在ftl模板檔案中,可以正常使用html,css和js的**

布林型別
在freemarker中布林型別不能直接輸出;如果輸出要先轉成字串

方法一:?c

方法二:?string 或 ?string("true時的文字","false時的文字")

-->

$ $

$

日期型別
日期型別

1. 年月日 ?date

2. 時分秒 ?time

3. 年月日時分秒 ?datetime

4. 自定義格式 ?string("自定義")

y:年 m:月 d:日

h:時 m:分 s:秒

-->

日期型別

$ $

$ $

數值型別
1.轉字串

普通字串 ?c

貨幣型字串 ?string.currency

百分比型字串 ?string.percent

2.浮點型的數值轉換成指定小數字輸出(#表示小數字)

?string["0.##"]

-->

數值型別

$ $

$ $

$ $

$

字串型別
字串連線操作- +

eg:$

獲取字串的長度- ?length

eg:$

取第一次出現的索引- ?index_of()

eg:$

取最後一次出現的索引- ?last_index_of()

eg:$

字串擷取- ?substring()

eg:$

字串替換- ?replace()

eg:$

字串分割- ?split()

eg:$

去掉前後的空格- ?trim

eg:$-$

判斷字串是否包含指定的子字串- ?contains()

eg:$

判斷是否以給定的子字串開頭- ?starts_with()

eg:$

判斷是否以給定的子字串結尾- ?ends_with()

eg:$

將字串全部轉換為大寫- ?upper_case

eg:$

將字串全部轉換為小寫- ?lower_case

eg:$

將字串的首字母變大寫- ?cap_first

eg:$

當字串為空值時:

不存在的值  --報錯

值為null --報錯

$ 如果value的值不存在時,則預設顯示空字串

$ 如果value的值不存在時,預設顯示指定字串

使用??,判斷字串是否為空;返回布林型別。如果想要輸出,需要將布林型別轉換成字串

$ 或$

sequence型別
通過list指令輸出序列

$獲取序列的長度 $

獲取序列元素的下標 $

獲取第乙個元素 $

獲取最後乙個元素 $

倒序輸出 序列名?reverse

公升序輸出 序列名?sort

降序輸出 序列名?sort?reverse

指定欄位名排序 序列名?sort_by("欄位名")

注:一般是j**abean集合,對應的欄位名需要提供get方法

$ -- $

$ -- $

格式二:

當沒有選項時,執行else指令

注意: 1.else部分是可選的

2.sequence為想要迭代的項,可以是序列或集合的表示式

3.item:迴圈變數的名稱

4.當沒有迭代項時,才是用else指令,可以輸出一些特殊的內容而不只是空在那裡

hash型別(map)
key遍歷輸出

$ --- $

value遍歷輸出

$例如:

$ --- $

assign自定義變數指令
語法:

if,elseif,else邏輯判斷指令
小於60

等於60

大於60

沒有分數

lt等同於 < 小於

gt等同於 > 大於

lte等同於 <= 小於等於

gte等同於 >= 大於等於

macro 自定義指令(巨集)
1. 基本使用

格式:指令內容

使用:

指令內容

使用:這是一段話!

$ * $ = $

$ * $ = $

這是一段話!

插入一句話!

include包含指令

​ 可以使用inlcude指令在你的模板中插入另外乙個freemarker模板檔案。被包含模板的輸出格式實在include標籤出現的位置插入的,被包含的檔案和包含他的模板共享變數,就像是被複製貼上進去的一樣。

插入html檔案

插入freemarker檔案

插入text檔案

插入的freemarker檔案中帶有引數的指令也可以用,兩個檔案都是通用的

例如:

j**a**:

//獲取系統時間戳加字尾

string filename = system.currenttimemillis()+".html";

file file = new file(htmlfile,filename);

//獲取檔案輸出流

filewriter filewriter = new filewriter(file);

//生成html

try catch (templateexception e) finally }}

模板:

$

freemarker學習總結

最近比較鬱悶,sourceforge進不去,freemarker和hibernate等都託管於sourceforge,於是自己做一點學習記錄,僅為了方便日後使用方便查閱 彙總freemarker標籤 1.插值 2.ftl tags標籤,ftl是區分大小寫的,如 break 標籤等等,自定義標籤用 m...

Freemarker使用筆記1 配置步驟

一 freemarker簡介 網頁靜態化技術和快取技術的共同點都是為了減輕資料庫的訪問壓力,但是具體的應用場景不同,快取比較適合小規模的資料,而網頁靜態化比較適合大規模且相對變化不太頻繁的資料。另外網頁靜態化還有利於seo。另外我們如果將網頁以純靜態化的形式展現,就可以使用nginx這樣的高效能的w...

freemarker 整理手冊

注釋 包含在 和 local y test 定義區域性變數 import lib my test.ftl as my 匯入模板檔案 指定名字空間 my macro greet 使用者定義指令 hello joe 作為使用者定義指令使用巨集變數時,使用 替代ftl標記中的 greet 如果沒有體內容,...