FreeMarker FTL语法速查:从插值到宏的完整笔记
前言
FreeMarker 在老项目和邮件模板、报表模板场景里依然大量存在。FTL 语法细节多、容易忘,这篇按「输出 → 运算 → 流程控制 → 集合 → 指令 → 宏」的顺序整理成速查笔记。
基本原则:所有标签必须闭合,否则 FreeMarker 无法解析。注释格式
<#-- 注释内容 -->,不会输出。
一、字符输出
${emp.name?if_exists} <#-- 变量存在输出,否则不输出 -->
${emp.name!} <#-- 同上 -->
${emp.name?default("xxx")} <#-- 变量不存在,取默认值xxx -->
${emp.name!"xxx"} <#-- 同上 -->
常用内建函数:
……