freemarker:常用指令、null值的處理、基本資料型別、自定義指令
阿新 • • 發佈:2020-08-16
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,其他資料型別無法操作