FreeMarker Manual.pdf
### FreeMarker 手册知识点概览 #### 一、模板作者指南 ##### 1. 入门 **模板 + 数据模型 = 输出** - **数据模型简介:** 数据模型是 FreeMarker 模板处理的核心,它定义了模板可以访问的数据结构。在 FreeMarker 中,数据模型由一系列对象组成,这些对象可以是基本类型、容器或自定义对象。 - **模板简介:** 模板是 FreeMarker 的另一核心组件,用于定义输出文档的结构和样式。模板通过特定的语法来引用数据模型中的变量,并根据这些变量生成动态内容。 ##### 2. 值与类型 - **基础知识:** - FreeMarker 支持多种类型的值,包括字符串、数字、日期等。 - 每种类型都有其独特的属性和方法,可以通过模板语言进行操作。 - **类型概述:** - 字符串:用于存储文本数据。 - 数字:包括整数和浮点数。 - 日期:表示具体的日期和时间。 - 布尔值:只有真(true)和假(false)两种状态。 - 序列:有序的对象集合。 - 哈希表:键值对形式的无序集合。 - 节点:XML 文档中的元素节点。 ##### 3. 模板结构 - **整体结构:** 模板通常由指令、表达式和插值构成。 - **指令:** 控制模板的行为,例如条件分支、循环等。 - **表达式:** 用于计算值并显示结果。 - **插值:** 在文本中插入变量值。 ##### 4. 其他特性 - **自定义指令:** 开发者可以根据需求创建自己的指令。 - **模板内定义变量:** 在模板内部声明变量,用于局部或全局作用域。 - **命名空间:** 使用命名空间来组织指令和函数,避免命名冲突。 - **空白处理:** 控制模板中空白字符(如空格和换行符)的处理方式。 - **方括号语法:** 一种可选的语法风格,用于提高代码可读性。 #### 二、程序员指南 ##### 1. 入门 - **创建配置实例:** 设置 FreeMarker 的运行时环境。 - **创建数据模型:** 准备模板所需的数据结构。 - **获取模板:** 从文件系统或其他位置加载模板。 - **合并模板与数据模型:** 将数据模型中的数据插入到模板中,生成最终的输出。 - **完整示例:** 结合以上步骤,演示如何构建一个完整的应用流程。 ##### 2. 数据模型 - **基础概念:** - 标量:简单的值类型,如字符串、数字。 - 容器:包含其他对象的集合,如列表、哈希表。 - 方法:可以被模板调用的函数。 - 指令:控制模板执行流程的特殊标记。 - 节点变量:用于表示 XML 文档中的元素节点。 - 对象包装器:为 Java 对象提供友好的接口。 ##### 3. 配置 - **基础设置:** 包括模板加载路径、编码设置等。 - **共享变量:** 全局可用的变量。 - **设置:** 控制 FreeMarker 行为的各种选项。 - **模板加载:** 指定模板文件的位置和加载机制。 - **错误处理:** 定义当模板执行过程中出现错误时的行为。 ##### 4. 其他特性 - **变量:** 如何在模板和程序之间传递数据。 - **字符集问题:** 解决不同字符集之间的转换问题。 - **多线程支持:** 优化性能,允许多个线程并发处理模板。 - **Bean 包装器:** 为 Java Beans 提供更灵活的访问机制。 - **日志记录:** 记录 FreeMarker 的运行时信息,便于调试。 - **与 Servlets 的集成:** 在 Web 应用程序中使用 FreeMarker。 - **安全策略配置:** 限制 FreeMarker 的某些功能,提高安全性。 - **遗留 XML 包装实现:** 为旧版 XML 文档提供支持。 - **与 Ant 的集成:** 在构建脚本中使用 FreeMarker。 - **Jython 包装器:** 支持 Jython 脚本语言。 #### 三、XML 处理指南 ##### 1. 前言 介绍如何利用 FreeMarker 处理 XML 数据。 ##### 2. 暴露 XML 文档 - **DOM 树:** 将 XML 文档解析成树形结构。 - **将 XML 加载到数据模型:** 学习如何将 XML 数据映射到 FreeMarker 的数据模型中。 ##### 3. 命令式 XML 处理 - **学习示例:** 通过具体例子理解命令式处理的方法。 - **正式描述:** 给出命令式处理的规范说明。 ##### 4. 声明式 XML 处理 - **基础知识:** 了解声明式处理的基本原理。 - **详细说明:** 提供更深入的技术细节。 #### 四、参考手册 ##### 1. 内置函数参考 - **字符串操作:** 提供各种字符串处理功能。 - **数字操作:** 支持数值计算。 - **日期操作:** 提供日期和时间的处理方法。 - **布尔值操作:** 处理布尔逻辑。 - **序列操作:** 对序列类型进行操作。 - **哈希表操作:** 支持哈希表的相关功能。 - **节点操作:** 专门针对 XML 文档中的节点。 - **高级内置函数:** 一些较少使用但功能强大的内置函数。 ##### 2. 指令参考 - **条件语句:** 如 `if`, `else`, `elseif`。 - **选择语句:** 如 `switch`, `case`, `default`, `break`。 - **循环语句:** 如 `list`, `break`。 - **导入:** 如 `include`, `import`。 - **忽略解析:** 如 `noparse`。 - **压缩:** 如 `compress`。 - **转义:** 如 `escape`, `noescape`。 - **赋值:** 如 `assign`。 - **全局变量:** 如 `global`。 - **局部变量:** 如 `local`。 - **设置:** 如 `setting`。 - **用户自定义指令:** 如 `<@>`。 - **宏:** 如 `macro`, `nested`, `return`。 - **函数:** 如 `function`, `return`。 - **流控制:** 如 `flush`。 - **停止:** 如 `stop`。 - **文件类型语言:** 如 `ftl`。 - **文本处理:** 如 `t`, `lt`, `rt`。 - **新行处理:** 如 `nt`。 - **异常处理:** 如 `attempt`, `recover`。 - **遍历:** 如 `visit`, `recurse`, `fallback`。 ##### 3. 特殊变量参考 提供一些特殊的变量定义及其用途。 ##### 4. FTL 中保留名称 列出在 FTL 中被保留的关键字。 ##### 5. 已废弃的 FTL 构造 - **已废弃的指令列表:** 列出不再推荐使用的指令。 - **已废弃的内置函数列表:** 列出不再推荐使用的内置函数。 - **旧式宏和调用指令:** 描述已被替换的宏和调用指令。 - **转换指令:** 已废弃的转换指令。 - **旧 FTL 语法:** 已不再支持的旧版本语法特性。 #### 五、附录 - **FAQ:** 常见问题解答。 - **安装 FreeMarker:** 详细介绍如何安装和配置 FreeMarker。 - **构建 FreeMarker:** 如果需要从源码编译 FreeMarker 的步骤。 - **版本历史:** - 2.3.12 - 2.3.11 - 2.3.10 - 2.3.9 - 2.3.8 - 2.3 - ... (更多版本信息)
剩余363页未读,继续阅读
- java_augur2012-06-18非常好的一个文档,英文版本。
- 粉丝: 31
- 资源: 21
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助