FreeMarker使用開發總結

1.FreeMarker的定義

FreeMarker是一個基於java的免費開源的模板引擎,基於文本的模板輸出工具,有着豐富的表達式,還可以自定義表達式。
Freemarker可以將後端準備好的數據,通過Freemarker表達式在前端頁面展示出來。
在軟件項目中常常用來生成HTML的 Web頁面,可以基於模板生成輸出文件,導出複雜樣式的excel。

2.工作原理圖

在這裏插入圖片描述

3.springboot工程中配置

1.添加maven依賴

<!-- freemarker -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
  1. 在springboot項目中的yml配置
spring:
  freemarker:
    cache: false
    suffix: .ftl
    template-loader-path: classpath:/templates
    content-type: text/html; charset=utf-8
    settings:
      number_format: 0   #數字不進行千分位自動轉換,比較大的數字會帶有逗號,如1,000

4.常用方法

在說方法前,先說一下Freemarker比較噁心的地方,就是空錯誤,如果你頁面表達式是null,
就會報錯,所以在使用的時候要先判斷是否爲空。有時候頁面報錯就是因爲這個。

1.$獲取元素值

<#if (msg)!="">
     ${msg}
</#if>

2.獲取map中的值

${map["name"]}

3.foreach,循環輸出list,先判斷是否

 <#if students ?? && students ?size gt 0>
	   <#list students as student>
		    ${student.name}
		    ${student.age}
		    ${student.sex}
	   </#list>
</#if>                        

4.邏輯判斷,if…else方法,
字符串類型判斷

<#if type == 1>
    type=1                                 
<#elseif type == 2>
    type=2
</#if>

布爾值類型判斷

<#if (booleanVal?string('yes', 'no'))=='yes'>
   <span></span>
<#else>
   <span></span>
</#if>

多個值進行if判斷

<#if flag=="1">
<span> 1 </span>
<#elseif flag=="2">
<span> 2 </span>
<#elseif flag=="3">
<span> 3 </span>
<#else> 
<span> 除了1、2、3之外 </span>
</#if>

5.獲取session中的值,如後端在session中保存userId,使用Freemarker
在session中保存userId的值

request.getSession().setAttribute("userId",userId);

在頁面使用freemarker表達式,爲避免userId的值是空就會報錯,所以要先判斷一下

<#if Session["userId"]?exists> 
	${Session["userId"]} 
</#if>

6.Freemarker格式化時間

// 輸出時間格式 2020-05-09 13:59:32

${createTime?string('yyyy-MM-dd hh:mm:ss')}

7.使用include標籤,引入其他頁面
抽出公共頁面代碼,取名right.ftl,如下

<div style="height: 80px;position: fixed;width: 350px;text-align: center;background-color: white;">
    <div class="col-md-6">
        <a href="#" style="text-decoration: none;color: #000000;line-height: 80px;font-size: 22px;">
            <span class="glyphicon glyphicon-edit"></span>
            寫文章</a>
    </div>
    <div class="col-md-6">
        <a href="#" style="text-decoration: none;color: #000000;line-height: 80px;font-size: 22px;">
            <span class="glyphicon glyphicon-trash"></span>
            草稿箱</a>
    </div>
</div>

在需要引入該代碼的頁面中,使用include標籤

<#include "right.ftl">
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章