freeMaker的基礎知識

2021-06-29 10:17:53 字數 2962 閱讀 4982

一、

使用${},這種方式進行取值;

注意在判斷的標籤和迴圈遍歷的標籤中中不用加入${};

<#--以下顯示了如何使用判斷結構,注意在判斷的標籤中不用加入${}-->

<#if emp.age lt 18>

$是童工

<#elseif emp.age gt 60>

$應該退休了

<#else>

$好好工作

<#list emps as emp>

$-----$---$

二、

<#--用來匯入相應的資料,匯入的路徑依然是從模板所在的位置開始-->

<#include "/inc/top.ftl"/>

<#assign n=1/>

$<#assign s="1"/>

$<#assign b=true/>

<#--對於freemarker而言,只能用${}這種方式輸出數字或者字串,對於其他型別都無法輸出-->

<#--$:是乙個boolean型別,無法輸出,需要將其轉換為字串才能輸出-->

$<#--將boolean轉換為字串-->

$<#--$顯示當前的日期-->

$--->$

<#assign d="2012-12-22 12:22:22"?date("yyyy-mm-dd hh:mm:ss")>

$

三、

<#--以下定義是和root中的username有衝突,其實不是進行覆蓋,而且用乙個優先順序比較高的物件將其隱藏了-->

<#assign username="小李"/>

<#--

對於freemarker而言,有如下幾種資料範圍

1、資料模型變數--root中的變數

2、模板變數--在模板檔案中通過assign來定義

3、區域性變數

4、迴圈變數--

當在模板中顯示這個變數的時候,首先會找模板變數,如果模板變數不存在就會去資料模型中找

-->

$<#--模板中存在,所以就直接顯示-->

$<#--.globals可以直接去資料模型中找變數-->

四、

<#--如果使用include來匯入多個ftl檔案,這些ftl檔案中所定義的模板變數可能會完成覆蓋,所以如果要引入

相應的由ftl編寫的函式等模組不建議使用include,而是用import來代替,include一般用於引入模板的公共部分

在這些公共部分中不加入任何變數定義-->

<#include "/inc/inc1.ftl"/>

<#include "/inc/inc2.ftl"/>

<#--使用import可以加入相應的命名空間,以下**將inc1.ftl引入並且加入到了inc1的命名空間中-->

<#import "/inc/inc1.ftl" as inc1/>

<#import "/inc/inc2.ftl" as inc2/>

$---$

五、空值的處理和判斷

<#--在freemarker中如果出現空值,不會什麼都不顯示,而是會報錯,要求開發人員手動處理-->

$---$

<#--如果使用了物件導航,!僅僅只會判斷最後乙個是否為空,如果導航中的某個物件為空依然會報錯

所以在導航中最好使用括號將要判斷的全部包含起來-->$$

<#--(a.b)??表示判斷a.b是否為空-->

<#if (a.b)??>

不為空<#else>

a.b為空

$

六、列表和map

$  ---->直接按照html的格式進行輸出

$...              可以對字串進行擷取

$

<#assign nums=[1,23,22,33,2,44]/>

<#assign nums=3..100/>

<#list nums[0..9] as num>

$$...

<#--freemarker最為特殊的乙個問題就是對於map而言,支援string型別作為key-->

<#assign user=/>

$<#--map的遍歷首先要獲取key-->

<#assign keys=user?keys/>

<#list keys as key>

$---$"]}

七、自定義指令:巨集巢狀nested 的使用

<#--自定義指令,第乙個引數是指令的名稱,接著的引數就是指令的引數

可以為引數增加預設值,有預設值的引數必須放在最後,當乙個引數有了預設值之後

在呼叫的時候可以省略這個引數-->

<#macro hello world num=3>

<#list 1..num as n>

hello:$[$]-->$

<#--呼叫hello這個指令,傳入引數必須寫引數名-->

<@hello world="老張"/>

<#--可以使用nested標籤嵌入呼叫自定義指令中的內容-->

<#macro test num=3>

<@test;n>

$.abc

<#macro helloworld>

<#--當函式執行之後,使用assign所定義的模板變數會被覆蓋,這是乙個有風險的行為,

所以在函式中如果沒有特殊的需求,一般不適應assign來定義相應的變數,而是使用

local來定義變數,用local來定義的變數就是區域性變數-->

<#--<#assign username="小李"/>-->

<#local username="小李"/>

macro:$

<@helloworld/>

$

電腦的基礎知識 電腦的基礎知識

電腦的組成部分與其作用 一 軟體系統 軟體系統的組成分別是 作業系統 應用軟體等。其應用軟體是指特定領域開發 並為特定目的服務的一類軟體。而作業系統是位於底層硬碟與使用者之間溝通的橋梁。使用者可以通過作業系統的使用者頁面,輸入命令,實現使用者需求。二 硬體系統 硬體系統是指構成計算機的物理裝置,即由...

電腦的基礎知識 電腦的基礎知識介紹

起尾我們需相識電腦的底子形成著名我們顧到的電腦皆是由 主機 次要部分 輸出裝置 矯飾器 輸出裝置 鍵盤戰滑鼠 三年夜件形成。而主機是電腦的主體,正在主機箱中有 主機板 cpu 記憶體 電源 音卡 音效卡 網絡卡 軟盤 軟碟機 光碟機等軟體。從底子機挨開往道,電腦不妨分為五年夜部分 運算器 記憶體器 ...

C 的基礎知識

一 請填寫bool float,指標變數與 零值 比較的if 語句。if n 0 if n 0 以次類推 請寫出bool flag與 零值 比較的 if 語句 if flag 請寫出 float x 與 零值 比較的 if 語句 const float espon 0.000001 if x esp...