一、概念
Freemarker 是一款模板引擎,并用来输出文本,网页或配置文件等。
二、语法
2.1 注释
<!-- 在页面可以看的到 -->
<#-- 在页面看不到 -->
2.2 数据类型
布尔类型 boolean
不能直接输出,需要转换成字符串,用 c 转换。
后端返回msg=true
# 错误
${msg}
# 正确
方法一: ${msg?c}
方法二: ${msg?string}
方法三: ${msg?string('是字符串','不是字符串')}
输出
true
true
是字符串
日期类型 date
不能直接输出,需要转换成字符串,用 c 转换。
数值类型
等于 java 中的 int,float,double 等类型。
字符串类型
等于 java 中的字符串。
空值处理
不存在会报错,null 也会报错,
解决:传空字符串"",加感叹号{msg!}
sequence 类型
等于 java 中的数组 list,set 类型。
# 遍历集合
<#list 序列名 as 元素名>
${元素名}
</#list>
hash 类型
等于 java 的 Map 类型。
# key遍历,获取key和key对应的value
<#list hash?key as key>
${key}---${hash[key]}
</#list>
# value遍历,直接获取value
<#list hash?values as value>
{value}
</#list>
2.3 常用指令
自定义变量 assign
# 定义单个
<#assign str = "hello">
#{str}
</#assign>
# 定义多个,根据逗号分割成字符串
<#assign name = "qinag" names=["强1","强2","强3"]>
#{str}
#{names?join(',')}
</#assign>
条件控制语句 if...elseif...else
# 格式
<#if 条件1>
...
<#ifelse 条件2>
...
<#ifelse 条件3>
...
<#else>
...
<#/if>
# 条件不为空时才遍历
<#if 序列名??>
<#list 序列名 as 元素名>
${元素名}
</#list>
</#if>
<#list 序列名 as 元素名>
${元素名}
<#else>
没有条件时执行这部分语句
</#list>
三、自定义指令
可以使用 macro 定义,可以传参,可以重复使用。
3.1 自定义指令
<#macro phone>
18912354231
</#macro>
使用自定义指令
<@phone></@phone>
3.2 自定义指令传参
<#macro queryByName name passwd>
根据用户名查询 - ${name}
密码是 - ${passwd}
</#macro>
使用自定义传参指令
<@queryByName name='admin' passwd='123456'></@queryByName>
3.3 nested 占位指令
<#macro test>
这是一段文本
<#nested>
</#macro>
使用 nested 占位指令
<@test>xxxxxx</@test>
则优先显示“这是一段文本”
四、导入指令
4.1 import
import 指令可以导入一个库,它创建一个新的命名空间,然后在那个命名空间中执行给定路径的模板,可以使用引入空间的指令。
commons.ftl
<#maro cfb>
QQ: 875667601
</#maro>
test.ftl
<#-- 导入命名空间 -->
<#import "commons.ftl" as common>
<#-- 使用导入的命名空间 -->
<@common.cfb></@common.cfb>
4.2 include
include 包含指令。
可以使用 include 指令在模板中插入另外一个模板,被包含的模板输出在 include 的位置上,像是复制进去了一样。
<#include "test.ftl">
<#include "test.txt">
<#include "test.html">
五、运算符
5.1 算数运算符
# 加 减 乘 除 取模
+ - * / %
5.2 逻辑运算符
# 与 或 非
&& || !
5.3 比较运算符
# 大于 小于 等于 大于等于 小于等于 不等于
>(gt)
<(lt)
=
>=(gte)
<=(lte)
!=
5.4 空值运算符
# 判断是否为空,返回布尔类型
??
${(name??)?string}
# 如果为空,设置默认值
@
${name! '小强'}
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于