FreeMarker 是一个强大的模板引擎,常用于生成动态HTML或其他文本格式的输出,尤其在Java Web应用中被广泛应用。它允许开发者使用简单的语法来控制逻辑,而将数据与展示分离。以下是对FreeMarker语法的详细解释: ### 基本概念 1. **Scalars**:标量是最基本的数据类型,包括字符串、数字和日期。字符串使用引号包围,数字直接书写,日期通常从数据模型中获取。布尔值只有`true`和`false`。 2. **Hashes**:哈希(或字典)是一个键值对的容器,每个键都是唯一的,用于存储和检索数据。例如:`{"key": "value"}`。 3. **Sequences**:序列是一个有序的对象容器,可以通过索引访问。索引从0开始。例如:`["element1", "element2"]` 或 `1..100`(表示从1到100的数字序列)。 4. **集合变量**:类似于受限的序列,但不能通过索引访问元素,通常在`<#list>`指令中使用。 5. **Methods**:方法是通过传入参数来计算并返回新对象的函数。它们在数据模型中定义。 6. **用户自定义FTL指令**:包括宏(Macro)和转换器(Transformer),用于扩展FreeMarker的功能,实现自定义逻辑。 7. **Nodes**:节点变量代表树形结构中的节点,常用于处理XML数据。 ### 序列和哈希操作 - **初始化**:可以直接在模板中初始化序列和哈希。例如,序列可以是`["you", "me", "he"]`,哈希可以是`{"you": "a", "me": "b", "he": "c"}`。 - **内置方法**: - `sequence?first`:返回序列的第一个元素。 - `sequence?last`:返回序列的最后一个元素。 - `sequence?reverse`:反转序列。 - `sequence?size`:返回序列的长度。 - `sequence?sort`:按照元素的`toString()`排序序列。 - `sequence?sort_by(value)`:根据指定属性(如`name`)对序列中的对象进行排序。 - **哈希操作**: - `hash?keys`:返回哈希的所有键,结果是一个序列。 - `hash?values`:返回哈希的所有值,结果是一个序列。 ### FreeMarker模板结构和表达式 1. **注释**:使用`<#-- 注释内容 -->`进行注释,不会出现在最终输出中。 2. **文本**:模板中的纯文本会被直接输出。 3. **插值**:`${var}`或`#{var}`用于插入变量或表达式的计算结果。 4. **表达式**: - **字符串**:可以是普通字符串(需要转义特殊字符)或原始字符串(如`r"/${data}"year""`)。 - **数字**:直接书写,不支持科学记数法。 - **布尔值**:`true`和`false`。 - **序列**:用方括号`[]`括起,可以是表达式列表或数字范围。 - **哈希**:用花括号`{}`括起,键值对之间用冒号分隔。 ### 转义字符: - `\`:反斜杠,用于转义特殊字符。 - `\"`:双引号。 - `\'`:单引号。 - `\n`:换行。 - `\r`:回车。 - `\t`:制表符。 - `\b`:退格。 - `\f`:换页。 - `\l`:小于号 `<`。 - `\g`:大于号 `>`。 - `\a`:与号 `&`。 - `\{`:左大括号 `{`。 - `\xCode`:4位16进制Unicode代码。 FreeMarker提供了丰富的语法和内置功能,使得模板的编写既简洁又灵活。通过这些基础知识,初学者可以开始构建动态模板,并随着经验的积累,进一步掌握更高级的特性,如控制流、条件语句、循环等,以实现复杂的逻辑和页面布局。
剩余41页未读,继续阅读
- 粉丝: 0
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- LCD1602电子时钟程序
- 西北太平洋热带气旋【灾害风险统计】及【登陆我国次数评估】数据集-1980-2023
- 全球干旱数据集【自校准帕尔默干旱程度指数scPDSI】-190101-202312-0.5x0.5
- 基于Python实现的VAE(变分自编码器)训练算法源代码+使用说明
- 全球干旱数据集【标准化降水蒸发指数SPEI-12】-190101-202312-0.5x0.5
- C语言小游戏-五子棋-详细代码可运行
- 全球干旱数据集【标准化降水蒸发指数SPEI-03】-190101-202312-0.5x0.5
- spring boot aop记录修改前后的值demo
- 全球干旱数据集【标准化降水蒸发指数SPEI-01】-190101-202312-0.5x0.5
- ActiveReports