Freemarker语法详解:从入门到精通

需积分: 45 2 下载量 164 浏览量 更新于2024-07-28 收藏 274KB PDF 举报
"Freemarker是一个强大的模板引擎,常用于Java Web开发中,它允许开发者将逻辑与表现分离,使得视图层的代码更加简洁。本资源提供了Freemarker的完整语法指南,适合初学者入门学习。" 在Freemarker模板语言(FTL)中,有以下几个核心概念: 1. **Scalars**:标量是存储单一值的数据类型,包括字符串、数字、日期和布尔值。字符串可以用单引号或双引号包围,数字直接书写,日期通常来自数据模型,布尔值则只有`true`和`false`。 2. **Hashes**:哈希(也称为映射或字典)用于存储键值对,每个键都是唯一的,并且可以用来查询其关联的值。 3. **Sequences**:序列类似于数组,按顺序存储对象,可以通过索引访问。索引从0开始,可以使用内置方法进行操作,如获取第一个元素、最后一个元素、反转序列或获取序列长度。 4. **集合变量**:集合类似于受限的序列,它们无法直接获取大小或通过索引访问子元素,但可以在`<#list>`指令中使用。 5. **Methods**:方法是根据传递的参数进行计算并返回结果的函数。它们在数据模型中定义,并通常返回新的对象。 6. **用户自定义FTL指令**:包括宏(Macro)和转换器(Transformer),允许开发者扩展Freemarker语法,创建自定义的模板元素。 7. **Nodes**:节点变量通常用于处理XML文档,表示树形结构中的一个节点。 在模板中初始化sequences和hashes的示例: - `[“you”,”me”,”he”]` 是一个包含三个字符串的序列。 - `1..100` 创建了一个从1到100的数字序列。 - `[{“Akey”:”Avalue”},{“Akey1”:”Avalue1”},{“Bkey”:”Bvalue”},{“Bkey1”:”Bvalue1”}]` 是一个包含四个键值对的哈希序列。 - `{“you”:”a”,”me”:”b”,”he”:”c”}` 是一个简单的哈希,每个键都有一个对应的值。 Freemarker还提供了一些内置的序列操作方法: - `sequence?first` 返回序列的第一个元素。 - `sequence?last` 获取序列的最后一个元素。 - `sequence?reverse` 反转序列的顺序。 - `sequence?size` 得到序列的长度。 - `sequence?sort` 对序列进行自然排序,即按照元素的`toString()`结果排序。 - `sequence?sort_by(value)` 根据指定的属性对序列进行排序,例如,如果序列包含`User`对象,`sequence?sort_by(name)`会按`User`对象的`name`属性进行排序。 掌握这些基本概念和方法后,开发者可以有效地利用Freemarker创建动态模板,生成符合需求的HTML或其他输出格式。这个完整的语法版本将帮助初学者全面了解Freemarker并快速上手。