【freemarker模板引擎语法】Freemarker 是一个基于 Java 的模板引擎,常用于生成 HTML、XML、SQL、邮件等文本内容。它通过将数据模型与模板结合,实现动态内容的生成。以下是对 Freemarker 模板引擎语法的总结,便于快速理解和使用。
一、基本语法结构
语法类型 | 说明 | 示例 |
变量输出 | 使用 `${}` 输出变量值 | `${name}` |
注释 | 使用 `` 注释代码 | `` |
条件判断 | 使用 ` | ` |
循环语句 | 使用 `
| `
|
宏定义 | 使用 ` | ` |
包含模板 | 使用 ` | ` |
转义字符 | 使用 `?html` 等对输出进行处理 | `${content?html}` |
二、常用指令说明
指令 | 功能 | 示例 |
` | 定义变量 | ` |
` | 定义全局变量 | ` |
` | 定义函数 | ` |
` | 设置默认转义方式 | ` |
` | 关闭默认转义 | ` |
三、数据模型访问
Freemarker 支持从 Java 对象中提取数据,常见的访问方式如下:
数据类型 | 访问方式 | 示例 |
Map | `${map.key}` | `${userMap.name}` |
List | `${list[0]}` 或 `${list?first}` | `${users[0].name}` |
JavaBean | `${bean.property}` | `${user.age}` |
数组 | `${array[0]}` | `${colors[1]}` |
四、常用内置对象
内置对象 | 功能 | 示例 |
`?size` | 获取集合大小 | `${list?size}` |
`?index` | 当前循环索引 | `
|
`?string` | 转换为字符串 | `${date?string("yyyy-MM-dd")}` |
`?default` | 设置默认值 | `${name?default("未知")}` |
`?html` | HTML 转义 | `${content?html}` |
五、注意事项
- Freemarker 不支持 JavaScript 或 Java 代码直接嵌入,需通过指令或变量操作。
- 模板应保持简洁,复杂逻辑建议在后端处理。
- 使用宏和包含模板可以提高代码复用率,减少冗余。
- 注意避免模板污染,合理使用命名空间和作用域。
总结
Freemarker 是一个功能强大且灵活的模板引擎,适用于多种场景下的文本生成。掌握其基本语法和常用指令,能够显著提升开发效率。通过合理使用变量、条件、循环、宏等特性,可以构建出结构清晰、易于维护的模板系统。