Freemarker語法概要

2021-08-25 19:51:56 字數 3796 閱讀 3878

freemarker基本語法

訪問請求-servlet/action獲取資料-跳往目標模板頁面ftl

pojo

public class student implements serializable

例如在乙個

servlet

中組織將要在模板中使用到的資料

system.out.println("開始處理..."); student student = new student(); student.setid(new integer(110)); student.setname("tom"); student.setbirthdate(new date()); student student2 = new student(); student2.setid(new integer(111)); student2.setname("ken"); student2.setbirthdate(new date()); list stulist = new arraylist(); stulist.add(student); stulist.add(student2); request.setattribute("stulist", stulist); request.setattribute("msg", " get list success & success! "); request.setattribute("i***ist", boolean.true); list indexlist = new arraylist(); indexlist.add(new integer(110)); indexlist.add(new integer(112)); request.setattribute("indexlist", indexlist); list number = new arraylist(); number.add(new integer(1)); number.add(new integer(2)); number.add(new integer(3)); list number2 = new arraylist(); number2.add(new integer(4)); number2.add(new integer(5)); number2.add(new integer(6)); list num = new arraylist(); num.add(number); num.add(number2); date date = new date(); request.setattribute("date", date); request.setattribute("num", num); system.out.println("結束處理..."); request.getrequestdispatcher("/student.ftl").forward(request, response);

跳往目標模板頁面student.ftl

<#assign msg=' this is the test of freemarker & output'> 後台放入字串:$

html編碼:$

轉第乙個字母大寫:$

<#-- 轉第乙個字母小寫:$

--> 字串大寫:$

字串小寫:$

去左右空格:$

空值判斷:$

預設值abc:$

輸出純文字:$

插入boolean值false:<#assign foo=false/>$

取下標為2的字元:$

取字串1-7:$

字串拼接: <#assign ab="abc"> $/$"}

賦值 assign x=3.1415926

<#assign x=3.1415926 /> x:m3小數部分最小3位 #

x:m5小數部分最大5位 #

x:m1m5 #

運算結果:3*5=$

內建int 1.1?int=:$

賦值assign y=20

<#assign y=20> 輸出數字原:$

輸出貨幣數字:$

輸出百分比:$

比較大小 21(使用括號): y>21= <#if (y >21) > false <#else> true

比較大小 21(使用字串):y>21= <#if y gt 21> false <#else> true

轉義字元:$

日期:

格式化輸出:$

格式輸出yyyy-mm-dd hh:mm:ss zzzz:$

賦值:assign a = '1'

a.if - else邏輯判斷

<#assign a = '1'> <#if a='0'> 0 <#elseif a='1'> 1 <#else> 2

b.switch

<#switch a> <#case '0'> 0 <#break> <#case '1'> 1 <#break> <#default> 2

c.遍歷list

後台傳遞list:stulist

判斷是否為空: <#if stulist?size=0> 空的 <#else> 非空

下標: <#list stulist as stu> $

內容: <#list stulist as stu> $

定義list["winter","spring","summer","autumn"]

輸出:<#list ["winter","spring","summer","autumn"] as x> $

list[1..5] <#list 1..5 as list> $

定義map

<#assign ages=> 輸出abc的年齡:$

輸出efg的年齡:$

定義map,分別輸出k-v <#assign selectelement = > <#assign skeys=selectelement?keys> <#list skeys as key> <#assign var0="$"> $-$ ---- $

序列連線["a","b"]+["e","f"]: <#assign liab=["a","b"]+["e","f"]> <#list liab as l > $

雜湊連線+【雜湊右值覆蓋左值】: <#assign ma=+ > <#assign keys=ma?keys > <#list keys as k> $

雙重list迴圈

<#list num as list> <#list list as temp> $

a.使用巨集 <#macro greet person color> hello $!

<@greet person="ken" color="blue"/>

b.巨集呼叫和巢狀nested:

<#macro border msg> $

<#nested>

repart:

<#nested>

<@border msg="the out msg:"> macro test!

c.巨集與巨集之間的巢狀:

<#macro person name> hello! $

<@border msg="the out msg:"> <@person name="ken"/>

d.巨集變數中使用迴圈變數

<#macro repeat count> <#list 1..count as x> <#nested x,x/2,x==count /> <@repeat count=4;c,halfc,last> $. $

<#if last> last!

可以在乙個ftl中專門定義巨集檔案 <#macro page title> 然後在另乙個檔案中使用import呼叫 <#import "/page/ftl/macro/common.ftl" as com> 使用 <@com.page title="">

freemarker 常見語法

2014 06 09 21 19 15 分類 freemarker 舉報 字型大小訂閱 格式比較亂一些,適合ctrl f搜尋關鍵字 freemarker的插值有如下兩種型別 1,通用插值 2,數字格式化插值 或 用於判斷如果存在,就輸出這個值 預設值 預設值 日期格式 20 三種不同的數字格式 20...

freemarker 語法詳解

1 擷取字串 有的時候我們在頁面中不需要顯示那麼長的字串,比如新聞標題,這樣用下面的例子就可以自定義顯示的長度 if title.content?length lt 8 else 意思就是如果這個字串的長度小於8,那麼就正常顯示,反之則取4位 注意 常用的比較運算子 判斷兩個值是否相等 不相等 gt...

Freemarker簡單語法

assign name xx 在頁面定義乙個變數 讀取名稱為name的變數 include ftl 用於模板檔案的巢狀 if else if else判斷語句 list userlist as user 遍歷名稱為userlist的集合 userlist size 獲取userlist 集合的長度 ...