注释
<#-- 注释内容 -->
<#--
注释也可以
多行内容
-->
基本使用
<html>
Hello ${name} 或,#{name}
</html>
if判断
<#assign age = 10>
<#if age gt 10 >
年龄大于10
<#else>
年龄大于等于10
</#if>
<#if condition>...
<#elseif condition2>...
<#elseif condition3>...
<#else>...
</#if>
lt代替<,lte代替<=,gt代替>,gte代替>=
switch
<#switch value>
<#case refValue>...<#break>
<#case refValue>...<#break>
<#default>...
</#switch>
判空
<#if name??>
……
</#if>
<#-- 如果name为空则显示空串 -->
${name!''}
<#-- 防止user和name为null -->
${(user.name)!''}
List操作
<#-- 遍历 -->
<#list userList as user>
昵称:${user.nickname}
</#list>
<# 升序排序>
<#list list?sort as l>…
<# 对象属性排序>
<#list userList?sort_by("age") as user>
遍历Map
<#list map?keys as key>
${map[key]}
</#list>
注:map的key只支持String类型,不支持int long等。
assign 创建或替换一个顶层变量
<#assign name="Harlan">
I'm ${name}
<#assign info={"mobile":"xxxxxx","address":"china"} >
my mobile is ${info.mobile}, my address is ${info.address}
数字格式化
<#assign num=20.01>
<li>${num}</li> <#-- 20.01 -->
<li>${num?string.number}</li> <#-- 20.01 -->
<li>${num?string.currency}</li> <#-- ¥20.01 -->
<li>${num?string.percent}</li> <#-- 2,001% -->
include
<#include path>
- path: 要包含文件的路径
macro 宏定义
基本用法
<#macro title>
<h1>Hello World!</h1>
</#macro>
<@title/>
带参数定义
<#macro title name>
<h1>Hello World! ${name}</h1>
</#macro>
<@title name="Harlan"/>
注意点
- 使用的参数一定要事先定义。
- 定义的参数在使用的时候一定要进行赋值,除非在创建macro的时候给参数默认值。
- 参数所能赋予的值不一定是字符串,也可以是其他类型,还可以是一个预运算表达式。
- 在使用的时候,对参数赋值顺序不确定,可随意。
- 参数是局部变量,只能在宏定义中有效。
命名空间(import)
/lib/test.ftl文件内容
#macro copyright date>
<p>Copyright (C) ${date} AutoCoding官网.
<br>Email: ${mail}
</p>
</#macro>
<#assign mail = "harlansong@qq.com">
导入库并使用
<#import "/lib/test.ftl" as tpl>
<@tpl.copyright date="2000-2020"/>
setting
定义
<#setting name=value>
- name 的取值范围如下:
- locale:该选项指定该模板所用的国家/语言选项
- number_format:指定格式化输出数字的格式
- boolean_format:指定两个布尔值的语法格式,默认值是true,false
- date_format,time_format,datetime_format:指定格式化输出日期的格式
- time_zone:设置格式化输出日期时所使用的时区
示例
${1.2}
<#setting locale="en_US">
${1.2}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。