freemarker 中文帮助手册

### FreeMarker 中文帮助手册知识点概览 #### 一、FreeMarker 概述 - **定义**:FreeMarker 是一款开源的、纯 Java 编写的模板引擎,主要用于根据模板生成文本输出。 - **应用场景**:虽然它最常用于生成 HTML Web 页面,尤其是 MVC 架构中的应用程序,但它的应用范围远不止于此。 - **角色定位**:FreeMarker 本身并不是一个 Web 应用框架,而是一个可以嵌入到其他 Web 框架中的组件。 - **跨平台性**:由于其设计独立于容器之外,不知道 HTTP 或 Servlets 的具体实现,因此可以应用于非 Web 环境。 - **与 Model2 框架的结合**:FreeMarker 特别适合用作 Model2 架构(例如 Struts)的视图组件。 #### 二、FreeMarker 的核心功能 ##### 2.1 通用目标 - **文本生成**:能够生成包括 HTML、XML、RTF、Java 源代码等多种文本格式。 - **易用性**:轻量级的设计使得它可以轻松地嵌入到产品中,不需要额外的 Servlet 环境。 - **模板加载**:提供了插件式的模板加载机制,可以从不同的数据源加载模板,比如本地文件、数据库等。 - **输出灵活性**:可以将生成的文本保存到本地文件、作为电子邮件发送、或从 Web 应用程序返回给 Web 浏览器。 ##### 2.2 强大的模板语言 - **常用指令**:支持 `include`、`if/elseif/else`、循环结构等常用的模板指令。 - **变量管理**:允许在模板中创建和修改变量。 - **表达式使用**:几乎在任何地方都可以使用复杂的表达式来指定值。 - **宏定义**:支持命名的宏,可以带有位置参数和嵌套内容。 - **名字空间支持**:利用名字空间可以构建和维护可重用的宏库,避免名字冲突。 - **输出转换**:内置了输出转换块,可以在嵌套模板片段生成输出时进行 HTML 转义、压缩、语法高亮等操作。 ##### 2.3 通用数据模型 - **数据封装**:Java 对象通过插件式的对象封装机制在模板中显示,而不是直接反射。 - **抽象层次**:可以通过抽象的方式表示对象(如 JavaBean、XML 文档、SQL 查询结果集等),简化模板开发者的使用难度。 ##### 2.4 为 Web 准备 - **Web 相关任务处理**:模板语言内置了处理典型 Web 相关任务(如 HTML 转义)的结构。 - **框架集成**:可以很容易地集成到 Model2 Web 应用框架中作为 JSP 的替代品,并且支持 JSP 标记库。 - **MVC 设计**:专门为 MVC 设计模式而设计,有助于分离可视化设计和应用程序逻辑。 ##### 2.5 国际化和本地化 - **字符集支持**:内部使用 Unicode,支持多种字符集。 - **本地化处理**:数字格式、日期和时间格式都对本地化敏感。 - **多语言支持**:支持在不同语言环境中使用相同的模板。 ##### 2.6 强大的 XML 处理能力 - **XML 树遍历**:通过 `<#recurse>` 和 `<#visit>` 指令可以递归遍历 XML 树。 - **直观的 XML 访问**:在模板中可以清晰直观地访问 XML 对象模型。 #### 三、FreeMarker 设计指南(一):快速入门 ##### 3.1 模板 + 数据模型 = 输出 - **分工明确**:FreeMarker 基于设计者和程序员分工明确的理念,设计者专注于页面的表现形式,程序员则负责生成页面所需的数据。 - **示例模板**: ```html <html> <head> <title>Welcome!</title> </head> <body> <h1>Welcome ${user}!</h1> <p>Our latest product: <a href="${latestProduct.url}">${latestProduct.name}</a> </p> </body> </html> ``` - **解释**:在模板中使用 `${...}` 包围的部分是 FreeMarker 的变量引用,它们将在运行时被实际的数据值替换。 - **数据模型示例**:数据模型可以由程序员通过编程的方式创建,其中包含了动态的数据,如 `user`、`latestProduct.url` 和 `latestProduct.name`。 通过以上知识点的介绍,可以看出 FreeMarker 是一个强大且灵活的模板引擎,适用于多种场景,特别是在 Web 开发领域有着广泛的应用。





























- 阿芬2013-12-19可以用,但是不是很全面

- 粉丝: 15
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 恒安集团人事管理制度.doc
- 福建某大学物资设备采购合同.doc
- 湘潭万达广场项目重要危险源管控方案(报平台).doc
- 五峰渔洋关河堤施工组织设计.docx
- 战略绩效管理办法.docx
- 兖州体育中心-初步设计说明.doc
- 蜂窝铝板和铝方板的安装施工工艺.doc
- 2016年道路修复及管网改造工程招标文件113页(合同).doc
- 全国造价员考试《建设工程造价管理基础知识》精讲.doc
- 俄语版中国研究.doc
- 遗传学实验6大肠杆菌非中断杂交.doc
- 室内耐水腻子施工技术交底.doc
- 篮球馆岩土工程勘察报告.doc
- [重庆]建筑工程施工安全文明施工方案.doc
- 物料提升机租赁合同.doc
- 工程总承包项目经理作业指导书.doc


