1. 程式人生 > >JAVA模版引擎Freemarker常用標籤(一)

JAVA模版引擎Freemarker常用標籤(一)

1. if指令

這是一個典型的分支控制指令,該指令的作用完全類似於Java語言中的if,if指令的語法格式如下:
<#if condition>...
<#elseif condition>...
<#elseif condition>...
<#else> ...
</#if>
例子如下:
<#assign age=23>
<#if (age>60)>老年人
<#elseif (age>40)>中年人
<#elseif (age>20)>青年人
<#else> 少年人
</#if>
輸出結果是:青年人
上面的程式碼中的邏輯表示式用括號括起來主要是因為裡面有>符號,由於
FreeMarker
會將>符號當成標籤的結束字元,可能導致程式出錯,為了避免這種情況,我們應該在凡是出現這些符號的地方都使用括號.
	<#if animals.python.price < animals.elephant.price>
	  Pythons are cheaper than elephants today.
	<#else>
	  Pythons are not cheaper than elephants today.
	</#if> 
 

2、 switch , case , default , break指令

這些指令顯然是分支指令,作用類似於Java的switch語句,switch指令的語法結構如下:
<#switch value>
<#case refValue>...<#break>
<#case refValue>...<#break>
<#default>...
</#switch>

3、 list, break指令

list指令是一個迭代輸出指令,用於迭代輸出資料模型中的集合,list指令的語法格式如下:
<#list sequence as item>
...
</#list>
上面的語法格式中,sequence就是一個集合物件,也可以是一個表示式,但該表示式將返回一個集合物件,而item是一個任意的名字,就是被迭代輸出的集合元素.此外,迭代集合物件時,還包含兩個特殊的迴圈變數:
item_index:當前變數的索引值
item_has_next:是否存在下一個物件
也可以使用<#break>指令跳出迭代
例子如下:
<#list ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期天"] as x>
${x_index + 1}.${x}<#if x_has_next>,</if>
<#if x="星期四"><#break></#if>
</#list>
	<p>We have these animals:
	<table border=1>
	  <tr><th>Name<th>Price
	  <#list animals as being>
	  <tr><td>${being.name}<td>${being.price} Euros
	  </#list>
	</table>  
輸出為:
	<p>We have these animals:
	<table border=1>
	  <tr><th>Name<th>Price
	  <tr><td>mouse<td>50 Euros
	  <tr><td>elephant<td>5000 Euros
	  <tr><td>python<td>4999 Euros
	</table>  
 

4、include指令

include指令的作用類似於JSP的包含指令,用於包含指定頁.include指令的語法格式如下:
<#include filename [options]>
在上面的語法格式中,兩個引數的解釋如下:
filename:該引數指定被包含的模板檔案
options:該引數可以省略,指定包含時的選項,包含encoding和parse兩個選項,其中encoding指定包含頁面時所用的解碼集,而parse指定被包含檔案是否作為FTL檔案來解析,如果省略了parse選項值,則該選項預設是true.
	<html>
	<head>
	  <title>Test page</title>
	</head>
	<body>
	  <h1>Test page</h1>
	  <p>Blah blah...
	<#include "/copyright_footer.html">
	</body>
	</html> 

5、 import指令

該指令用於匯入FreeMarker模板中的所有變數,並將該變數放置在指定的Map物件中,import指令的語法格式如下:
<#import "/lib/common.ftl" as com>
上面的程式碼將匯入/lib/common.ftl模板檔案中的所有變數,將這些變數放置在一個名為com的Map物件中.
  1. 建立庫
Ø         下面是一個建立庫的例子(假設儲存在lib/my_test.ftl中):
	<#macro copyright date>
	  <p>Copyright (C) ${date} Julia Smith. All rights reserved.
	  <br>Email: ${mail}</p>
	</#macro>  
	<#assign mail = "[email protected]"> 
Ø         使用import指令匯入庫到模板中,Freemarker會為匯入的庫建立新的名字空間,並可以通過import指令中指定的雜湊變數訪問庫中的變數:
	<#import "/lib/my_test.ftl" as my>
	<#assign mail="[email protected]">
	<@my.copyrightdate="1999-2002"/>
	${my.mail}
	${mail}  
輸出結果:
	  <p>Copyright (C) 1999-2002 Julia Smith. All rights reserved.
	  <br>Email: [email protected]</p>
	[email protected]
	[email protected]  
可以看到例子中使用的兩個同名變數並沒有衝突,因為它們位於不同的名字空間
l         可以使用assign指令在匯入的名字空間中建立或替代變數,下面是一個例子:
	<#import "/lib/my_test.ftl" as my>
	${my.mail}
	<#assign mail="[email protected]" in my>
	${my.mail}  
l         輸出結果:
	[email protected]
	[email protected]  
l         資料模型中的變數任何地方都可見,也包括不同的名字空間,下面是修改的庫:
	<#macro copyright date>
	  <p>Copyright (C) ${date} ${user}. All rights reserved.</p>
	</#macro>
	<#assign mail = "${user}@acme.com">   
l         假設資料模型中的user變數的值是Fred,則下面的程式碼:
	<#import "/lib/my_test.ftl" as my>
	<@my.copyright date="1999-2002"/>
	${my.mail}   
l         輸出結果:
	  <p>Copyright (C) 1999-2002 Fred. All rights reserved.</p>
[email protected]  

相關推薦

JAVA模版引擎Freemarker常用標籤()

1. if指令 這是一個典型的分支控制指令,該指令的作用完全類似於Java語言中的if,if指令的語法格式如下: <#if condition>... <#elseif condition>... <#elseif condition>

Java模板引擎FreeMarker系列之十freemarker與jquery標誌符衝突怎麼處理

freemarker與jquery標誌符衝突怎麼辦?我們用freemarker做展示層,freemarker語法預設採用<# ></>尖括號形式,為了與html程式碼清晰分離,freemarker還提供[ ]方括號形式,只需配置一下,我們就是採用[]的

Java web前端——HTML常用標籤

html簡介 1.1 html概述 html全稱:Hyper Text Markup Language(超文字標記語言) 超級文字標記語言是標準通用標記語言(SGML)下的一個應用,也是一種規範,一種標準,它通過標記符號來標記要顯示的網頁中的各個部分

FreeMarker常用標籤介紹

FreeMarker標籤使用  一、FreeMarker模板檔案主要有4個部分組成   1、文字,直接輸出的部分   2、註釋,即<#--...-->格式不會輸出   3、插值(Interpolation):即${..}或者#{..}格式的部分,將使用資料模型中的部分替代輸出   4、FTL指

java基礎基礎總結----- 常用DOS命令(

擴展 ear mkdir jar文件 方法 常用 directory 加載 rect 常用DOS命令 dir(directory):列出當前目錄下的文件以及文件夾 mkdir (make directory) : 創建目錄 rd (remove directory):

Java模版方法的另種實現

pan strategy 全部 相關 必須 rod () 抽象方法 rate   面試荔枝FM杯具,遂死磕AQS途中發現一個有趣的模版用法,記下來。   模版方法是很重要的設計模式,在數據訪問層、眾多的插件接口都可見其影子,一般的實現都是在模版中定義抽象方法並使用其方法進行

java前端頁面的各種常用標籤

C標籤庫: <c:forEach>標籤有兩種使用方式: <c:forEach var="e" items="${leaveMsgList}" varStatus="i"> <tr>

[前端]全面探索 FreeMarker 模版引擎的擴充套件性

******************************************************************************* *******************************************************

全面探索 FreeMarker 模版引擎的擴充套件性

FreeMarker 模版引擎簡介 FreeMarker 是一個採用 Java 開發的模版引擎,是一個基於模版生成文字的通用工具。 FreeMarker 被設計用來生成 HTML Web 頁面,特別是基於 MVC 模式的應用程式。雖然 FreeMarker 具有一些程式設計的能力,但通常由 Ja

Java之利用Freemarker模板引擎實現程式碼生成器,提高效率

https://blog.csdn.net/huangwenyi1010/article/details/71249258  java模板引擎freemarker程式碼生成器 更多 個人分類: 一步一

、HTML的簡單介紹及常用標籤的介紹

(一)、HTML 的簡單介紹 定義:HTML:HyperText Markup language(超文字標記語言),HTML 不是一門程式語言,而是標記語言。 作用:web 瀏覽器用 html 來顯示網頁 當前的標準:當前的 html 遵循 HTML5 標準

Freemarker模板引擎的使用總結()

 1. FreeMarker模板引擎的使用: 模板 + 資料模型 = 輸出   1) FreeMarker模板:一個普通文字檔案,其中使用了一些FreeMarker的特別標記。   2) 資料模型:存放了資料的資料結構,通常是一個Hash儲存結構(如:HashMap)

Java學習之路0714()(markDown標籤的簡單使用,Java環境配置、Java基本資料型別))

1、markdown標籤的簡單使用 #的使用 *的使用 >的使用 =的使用 -的使用 圖片的新增 標題#的使用,#表示一級標題,##表示是二級標題,標題內容寫在#後面 這是一級標題 這是二級標題 這是三級標題

freemarker常用標籤

freemarker list (長度,遍歷,下標,巢狀,排序) 1. freemarker獲取list的size : Java ArrayList<String> list = new ArrayList<String>(); Fre

HTML常用標籤及其對應的屬性【

基本結構標籤: <HTML>,表示該檔案為HTML檔案 <HEAD>,包含檔案的標題,使用的指令碼,樣式定義等 <TITLE>---</TITLE>,包含檔案的標題,標題出現在瀏覽器標題欄中 </HEAD>,&l

HTML常用標籤屬性(

HTML 常用頭標籤屬性 <! DOCTYPE HTML>:定義選用的解釋語言 <html>:整個頁面的內容,只能有一個 <head>:頭部標籤,在<html

JAVA Web 基於 c:forEach 標籤的分頁功能(程式碼十分簡短,看便懂,可直接使用)

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page language="java" import="java.util

實現一個程式碼自動生成():模板引擎Freemarker

目錄 前言 模板引擎FreeMarker 模板引擎是什麼? FreeMarker是什麼? FreeMarker如何使用? 加入依賴 建立Configuratio

java 中幾種常用數據結構

初學 ble log app 使用 blog list 好的 sort Java中有幾種常用的數據結構,主要分為Collection和map兩個主要接口(接口只提供方法,並不提供實現),而程序中最終使用的數據結構是繼承自這些接口的數據結構類。 一、幾個常用類的區別 1.

Java中Calendar.DAY_OF_WEEK需要減的原因

lsp spa 新手 註意 規則 ava 第幾天 返回 區分 Java中對日期的處理需要用到Calendar類,其中有幾個方法在使用時需要新手註意。 1. 在獲取月份時,Calendar.MONTH + 1 的原因(Java中Calendar.MONTH返回的數值其實是當前