flush

Page Contents

Synopsis

<#flush>

Description

FreeMarker 生成输出时,通常不会立即将其发送给最终的接收方(例如 Web 浏览器或目标文件),而是将其累积在缓冲区中,然后以更大的块发送出去。缓冲的确切规则不是由 FreeMarker 决定的,而是由嵌入软件决定的。发送出缓冲区中累积的内容称为刷新。尽管刷新是自动进行的,但有时您还是希望在模板处理的某些点上强制执行刷新,这就是flush指令的作用。在某些时候是否需要它应该由程序员而不是设计师来决定。

请注意,虽然flush告诉嵌入软件我们要刷新,但也可能决定忽略此请求。它不在 FreeMarker 手中。

刷新仅调用当前使用的java.io.Writer实例的flush()方法。整个缓冲和刷新机制在Writer中实现(您已将其作为Template.process方法的参数进行了传递); FreeMarker 不处理它。