freemarker使用總結

目錄

爲什麼使用freemarker

簡單的Freemarker測試

Freemarker語法

訪問Map中的key

訪問POJO中的屬性

訪問集合中的數據

if判斷

日期

include


爲什麼使用freemarker

當用戶訪問jsp的時候,jsp本質就是servlet,所以訪問的時候會被翻譯成java類,但是想html這種靜態頁面不用翻譯直接訪問速度就快

FreeMarker是一個用Java語言編寫的模板引擎,它基於模板來生成文本輸出。FreeMarker與Web容器無關,即在Web運行時,它並不知道Servlet或HTTP。它不僅可以用作表現層的實現技術,而且還可以用於生成XML,JSP或Java 等。

目前企業中:主要用Freemarker做靜態頁面或是頁面展示

簡單的Freemarker測試

新建一個web工程,完整的工程目錄結構如下:

使用freemarker依賴

<dependency>
    <groupId>org.freemarker</groupId>
    <artifactId>freemarker</artifactId>
    <version>2.3.23</version>
  </dependency>

首先要創建ftl模板文件

在webapp目錄下新建ftls文件夾(名稱以及存放的位置任意)存放Freemarker的模板

創建hello.ftl模板文件,(freemarker對於拓展名是沒有要求的。通常使用ftl作爲擴展名)輸入如下內容

<html>
<head>
   <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
</head>
<body>
測試:${hello}
</body>
</html>

其中的${hello}是Freemarker的語法標籤。Freemarker會將這個標籤替換爲程序中指定的內容。

測試方法

Freemarker語法

訪問Map中的key

訪問Map中的數據:

${key}

訪問POJO中的屬性

pojo中的屬性:

${stu.id}-${stu.name}

其中stu是pojo對象對應的key:這個對象還是放在map中傳遞過去的

訪問集合中的數據

<#list 集合 as 元素>

取集合中的數據
<#list studentList as student>
    下標:${student_index}
    集合中的元素:${student.id}/${student.name}
</#list>

if判斷

<#if student_index % 2 == 0>
我是if
<#else>
我是else
</#if>

日期

${date?date} 2016-9-13
${date?time} 17:53:55
${date?datetime} 2016-9-13 17:53:55
${date?string("yyyy/MM/dd")}

其中date是屬性名

dataModel.put("date",new Date

空值處理

如果模板中引用的key不存在,會報異常,用${key!}代表空字符串

處理: ${aaa!"默認值"}或者${aaa!}代表空字符串

include

一個ftl模板中可以引用另一個模板

<#include "hello.ftl">

());

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