将模板与数据模型合并

您可能已经知道,数据模型模板=输出。我们已经有一个数据模型(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 方法时访问。