我们已经知道,数据模型+模板=输出,我们有了一个数据模型
(root
) 和一个模板 (temp
),
为了得到输出就需要合并它们。这是由模板的 process
方法完成的。它用数据模型root和 Writer
对象作为参数,然后向 Writer
对象写入产生的内容。
为简单起见,这里我们只做标准的输出:
Writer out = new OutputStreamWriter(System.out); temp.process(root, out);
这会向你的终端输出你在模板开发指南部分的 第一个示例 中看到的内容。
Java I/O 相关注意事项:基于 out
对象,必须保证
out.close()
最后被调用。当 out
对象被打开并将模板的输出写入文件时,这是很电影的做法。其它时候,
比如典型的Web应用程序,那就 不能 关闭
out
对象。FreeMarker 会在模板执行成功后
(也可以在 Configuration
中禁用)
调用 out.flush()
,所以不必为此担心。
请注意,一旦获得了 Template
实例,
就能将它和不同的数据模型进行不限次数
(Template
实例是无状态的)的合并。此外,
当 Template
实例创建之后
test.ftl
文件才能访问,而不是在调用处理方法时。