将模板与数据模型合并
您可能已经知道,数据模型模板=输出。我们已经有一个数据模型(root
)和一个模板(temp
),因此要获得输出,我们必须将它们合并。这是通过模板的process
方法完成的。它以数据模型的根和Writer
作为参数。它将产生的输出写入Writer
。为了简单起见,我在此处写入标准输出:
Writer out = new OutputStreamWriter(System.out);
temp.process(root, out);
这会将您在《模板作者指南》的first example中看到的输出打印到您的终端。
与 Java I/O 相关的 Comments:根据out
的不同,您可能需要确保out.close()
被调用。当out
写入已打开以存储模板输出的文件时,通常需要这样做。在其他时候,就像在典型的 Web 应用程序中一样,您必须不要关闭out
。在成功执行模板后,FreeMarker 调用out.flush()
(但可以在Configuration
中禁用 tis),因此您不必为此担心。
请注意,一旦获得Template
实例,就可以将其与不同的数据模型合并无限次(Template
实例是 Stateless 的)。同样,仅在创建Template
实例时访问test.ftlh
文件,而不在调用 process 方法时访问。