【freemarker模板引擎语法】FreeMarker 是一个基于 Java 的模板引擎,常用于生成 HTML、XML、SQL、Email 等文本内容。它通过将数据模型与模板结合,动态生成最终的输出结果。以下是 FreeMarker 模板引擎常用语法的总结。
一、基础语法概述
| 类型 | 说明 | 示例 | 
| 变量引用 | 使用 `${}` 引用变量 | `${name}` | 
| 注释 | 使用 `` 注释代码 | `` | 
| 条件判断 | 使用 ` | ` | 
| 循环结构 | 使用 ` 
 | ` 
 | 
| 宏定义 | 使用 ` | ` | 
| 参数传递 | 在调用宏时传递参数 | `<@greet name="John" />` | 
| 包含其他模板 | 使用 ` | ` | 
| 空值处理 | 使用 `??` 判断变量是否为空 | `${user.name!}` 或 `${user.name!"Guest"}` | 
二、常用指令详解
| 指令 | 功能 | 示例 | 
| ` | 条件判断 | ` | 
| ` 
 | 遍历序列 | ` 
 | 
| ` | 赋值变量 | ` | 
| ` | 定义宏 | ` | 
| ` | 包含文件 | ` | 
| ` | 控制循环流程 | ` | 
| ` | 忽略模板解析 | ` | 
三、表达式与运算符
| 运算符 | 说明 | 示例 | ||||
| `+` | 加法 | `${a + b}` | ||||
| `-` | 减法 | `${b - a}` | ||||
| `` | 乘法 | `${x y}` | ||||
| `/` | 除法 | `${num / 2}` | ||||
| `==` | 等于 | `${age == 18}` | ||||
| `!=` | 不等于 | `${name != "John"}` | ||||
| `&&` | 逻辑与 | ` | ||||
| ` | ` | 逻辑或 | ` | b>` |  | 
四、内置对象与函数
| 对象/函数 | 说明 | 示例 | 
| `?is_string` | 判断是否为字符串 | `${value?is_string}` | 
| `?length` | 获取长度 | `${text?length}` | 
| `?cap_first` | 首字母大写 | `${name?cap_first}` | 
| `?lower_case` | 转小写 | `${text?lower_case}` | 
| `?upper_case` | 转大写 | `${text?upper_case}` | 
| `?substring` | 截取子串 | `${text?substring(0, 5)}` | 
五、注意事项
- FreeMarker 不支持 JavaScript 或 Java 代码直接嵌入模板中。
- 变量名区分大小写,建议使用驼峰命名法。
- 使用 `${}` 时注意避免空指针异常,可以使用默认值处理。
- 模板应尽量保持简洁,复杂的逻辑建议在后端处理。
总结
FreeMarker 是一个功能强大且灵活的模板引擎,适用于多种场景下的文本生成。掌握其基本语法和常见指令,能够帮助开发者高效地构建动态页面和文档。合理使用条件语句、循环结构和宏定义,可以显著提升开发效率与代码可维护性。
 
                            

