FreeMarker 2.3.10程序员指南_中文教程

需积分: 16 16 下载量 30 浏览量 更新于2024-07-28 收藏 297KB PDF 举报
"Freemarker教程_中文版" FreeMarker是一个强大的、开源的模板引擎,主要用于生成动态HTML、XML或其他格式的文本。它与Java紧密集成,常用于Web应用程序中,帮助开发者将业务逻辑与视图层分离。本教程主要基于FreeMarker 2.3.10版本的Programmer's Guide的中文翻译。 一、快速入门 FreeMarker的使用始于创建`Configuration`实例。`Configuration`类是FreeMarker的核心,它存储了应用级别的配置信息,并负责管理模板的加载和预处理。在Java Web应用中,通常在初始化阶段创建一个`Configuration`实例,并设置必要的属性,如模板路径、字符编码等。以下是一个简单的创建配置实例的步骤: 1.1、创建配置实例 ```java import freemarker.template.Configuration; Configuration cfg = new Configuration(Configuration.VERSION_2_3_30); cfg.setDirectoryForTemplateLoading(new File("/path/to/templates")); ``` 1.2、创建数据模型(DataModel) 数据模型是FreeMarker模板处理的数据来源,它可以是Java对象、集合、Map等。例如,你可以创建一个简单的Map作为数据模型: ```java Map<String, Object> dataModel = new HashMap<>(); dataModel.put("name", "John Doe"); dataModel.put("age", 30); ``` 1.3、获取模版(template) 使用`Configuration`实例加载模板文件: ```java Template template = cfg.getTemplate("example.ftl"); ``` 1.4、把模版与数据模型合并 将模板和数据模型合并,生成最终的输出文本: ```java StringWriter writer = new StringWriter(); template.process(dataModel, writer); String output = writer.toString(); ``` 1.5、完整的代码 整合以上步骤,形成一个简单的FreeMarker模板处理流程。 二、数据模型(DataModel) 数据模型可以包含多种类型的数据,包括基础类型、Scalar类型、容器类型、方法变量、转换器变量和节点变量等。例如: 2.1、基础类型:如字符串、数字、布尔值等。 2.2、Scalar类型:单个值,如字符串或数字。 2.3、容器类型:如List、Set、Map等,用于封装多个值。 2.4、方法变量:允许模板调用Java对象的方法。 2.5、转换器变量:用于将数据转换成特定格式。 2.6、节点变量:处理XML或DOM树中的节点。 2.7、对象包裹:FreeMarker可以自动将Java对象包裹,使得模板能访问其属性。 三、配置(Configuration) `Configuration`类提供了丰富的配置选项,包括: 3.1、基础:设置模板加载路径、默认编码等。 3.2、共享变量:定义全局变量,可供所有模板使用。 3.3、配置参数:调整FreeMarker的行为,如模板错误处理方式。 3.4、加载模板:加载并缓存模板文件。 3.5、异常处理:配置如何处理模板执行时的错误。 四、其它说明 4.1、变量:在模板中声明和使用变量,遵循FreeMarker的语法。 4.2、字符编码:指定模板和输出的字符编码。 4.3、多线程:FreeMarker是线程安全的,适合多线程环境。 4.4、Bean包裹:FreeMarker可以自动处理JavaBeans属性。 通过本教程,读者能够快速上手FreeMarker,理解其基本工作原理,并能运用到实际项目中。对于更深入的使用和理解FreeMarker的其他功能,如XML处理和参考文档,读者可以进一步查阅官方文档。