FreeMarker是一款模板引擎: 即一種基於模板和要改變的數據,並用來生成輸出文本(HTML網頁、電子郵件、配置文件、源代碼等)的通用工具。 它不是面向最終用戶的,而是一個Java類庫,是一款程序員能夠嵌入他們所開發產品的組件。html
${}:FreeMarker將會輸出真實的值來替換大括號內的表達式, 這樣的表達式被稱爲interpolation(插值)。
註釋:註釋和HTML的註釋也很類似,可是它們使用<#-- -->
來標識。不像HTML註釋那樣,FTL註釋不會出如今輸出中(不出如今訪問者的頁 面中),由於FreeMarker會跳過它們。java
FTL標籤和HTML標籤有一些類似之處,可是它們是FreeMarker的指令,
是不會在輸出中打印的。這些標籤的名字以#開頭。程序員
if、elseif和else指令能夠用來條件判斷是否越過模板的一個部分。
condition必須計算成布爾值,不然錯誤將會停止模板處理。elseif和else必須出如今if內部
(也就是在if的開始標籤和結束標籤之間)spring
<#if condition> ... <#elseif condition2> ... <#elseif condition3> ... <#else> ... </#if>
list指令執行在list開始標籤和list結束標籤緩存
<#list users as user> ${user}取對象 ${user_index}取對象的下標 ${user_index+1} </#list>
訪問pojo中的屬性springboot
${key.property}
引入外部資源session
<#include "head.ftl">
list的尺寸mvc
${users?size}
定義變量maven
<#assign text="{'name':'小明','age':'12'}">
變量轉換成對象函數
<#assign person=text?eval>
日期格式化
${date?string('yyyy年MM月dd日')}
空值處理
${(name)!'小明')}空值會用括號的值代替 <#if (a)??>邏輯運算,若是a不爲空,處理if裏的語句
邏輯運算符(若是使用符號須要用小括號()括起來)
>gt >=gte <it <=ite
FreeMarker不能引用不存在的變量,除非明確地告訴它當變量不存在時如何處理,
一個不存在的變量和一個是null值的變量,對於FreeMarker來講是同樣的。
依賴
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> </dependency>
Freemarker 頁面目錄配置
spring: mvc: view: prefix: /templates/ suffix: .ftl ##模版存放路徑(默認爲 classpath:/templates/) spring.freemarker.template-loader-path=classpath:/templates/ ##是否生成緩存,生成環境建議開啓(默認爲true) spring.freemarker.cache=true ##編碼 spring.freemarker.charset=UTF-8 spring.freemarker.check-template-location=true ##content-type類型 (默認爲test/html) spring.freemarker.content-type=text/html ## 設定全部request的屬性在merge到模板的時候,是否要都添加到model中 (默認爲false) spring.freemarker.expose-request-attributes=false ##設定全部HttpSession的屬性在merge到模板的時候,是否要都添加到model中 (默認爲false) spring.freemarker.expose-session-attributes=false ##RequestContext屬性的名稱 spring.freemarker.request-context-attribute=request ##模板後綴 (默認爲.ftl) spring.freemarker.suffix=.html