FreeMarker 入門

FreeMarker是一款模板引擎: 即一種基於模板和要改變的數據,並用來生成輸出文本(HTML網頁、電子郵件、配置文件、源代碼等)的通用工具。 它不是面向最終用戶的,而是一個Java類庫,是一款程序員能夠嵌入他們所開發產品的組件。html


一.基本語法編輯

${}:FreeMarker將會輸出真實的值來替換大括號內的表達式,
這樣的表達式被稱爲interpolation(插值)。

註釋:註釋和HTML的註釋也很類似,可是它們使用<#-- -->來標識。不像HTML註釋那樣,FTL註釋不會出如今輸出中(不出如今訪問者的頁 面中),由於FreeMarker會跳過它們。java

二.FTL標籤(FreeMarker模板的語言標籤)

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來講是同樣的。


三.Freemarker + Springboot Maven配置

依賴

<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
相關文章
相關標籤/搜索