1. 程式人生 > 實用技巧 >freemarker:常用指令、null值的處理、基本資料型別、自定義指令

freemarker:常用指令、null值的處理、基本資料型別、自定義指令

1、常用指令

(1)if

資料:

root.put("Student",new Student("zhai",32));

模板:

<body>
<#if Student.age lt 12>
${Student.sname}小孩子
<#elseif  Student.age gt 18>
${Student.sname}成年
<#else>
${Student.sname}你好
</#if>
</body>

輸出:

(2)include

資料:

 root.put("Student",new Student("zhai
",32));

要被包含的檔案:

引入要被包含的檔案:

輸出檔案:

2、null值的處理

(1)null值報錯

從一個不存在的屬性取出資料為null:

報錯:

(2)null值的處理

測試:

3、基本資料型別

(1)數字和字串

定義:

輸出

(2)不能直接輸出數字和字串以外的型別,需要轉換為字串以後才能輸出

定義資料:

取出資料:

4、自定義指令

(1)定義自定義指令並傳遞引數

輸出:

5、總結

(1)概念

freemarker是一個模板引擎,雖然具有一定的程式設計能力,但是通常將其作為模板而資料通過java程式提供,模板+資料=頁面

freemarker不是一個web應用的框架,而適合作為web應用框架的一個元件

(2)好處

將邏輯與顯示相分離,資料直接從java程式碼中獲取,複雜的業務邏輯在java程式碼中而不是交給檢視層

提高開發效率:節省了程式碼的編譯次數(jsp頁面需要轉換為servlet後才能執行)

有利於開發的分工:前端人員只需關注頁面的設計不用關心業務邏輯的實現,同樣,後端開發人員書寫業務邏輯提供資料

(3)缺點

資料在更新後需要及時更新模板,否則可能會看到過期資料

FreeMarker中的變數必須要賦值,如果不賦值,那麼就會丟擲異常,可以用if/elseif/else 指令進行判斷,但是又會增加程式碼的複雜程度

,FreeMarker的map限定key必須是string,其他資料型別無法操作