概要

<#flush>

描述

当 FreeMarker 生成输出时,它通常不会立即发送到最终接收端 (比如web浏览器或最终的文件),而是会将内容累积在缓冲区,发送一个大块的内容。 缓冲区的精确规则不是由 FreeMarker 决定的,而是由嵌入的软件决定的。 将缓冲区中累积的内容发送出去称为冲洗。尽管冲洗是自动发生的, 有时你想在模板处理时的一点强制执行,这就是 flush 指令要做的。如果需要在确定之处用到它,这是由程序员决定的,而不是设计师。

请注意, flush 告诉嵌入的软件我们想要冲洗, 那么也许就会决定忽略该请求。这不由 FreeMarker 之手控制。

冲洗简单调用当前使用 java.io.Writer 实例的 flush() 方法。 整个缓冲区和冲洗机制由 Writer(就是传递给 Template.process 方法的参数)实现; FreeMarker不用来处理它。