【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 是一个功能强大且灵活的模板引擎,适用于多种场景下的文本生成。掌握其基本语法和常见指令,能够帮助开发者高效地构建动态页面和文档。合理使用条件语句、循环结构和宏定义,可以显著提升开发效率与代码可维护性。