Возможно, вы использовали не того автора или вызвали flush в неподходящий момент или неверно истолковали результаты (т.е. поведение зависит от браузера / CSS / JS). Следующий тестовый пример работает для меня с Mojarra 2.1.3.
<h:outputText value="#{bean.text}" escape="false" />
<h:outputText value="#{bean.text}" escape="false" />
<h:outputText value="#{bean.text}" escape="false" />
<h:outputText value="#{bean.text}" escape="false" />
<h:outputText value="#{bean.text}" escape="false" />
<h:outputText value="#{bean.text}" escape="false" />
<h:outputText value="#{bean.text}" escape="false" />
<h:outputText value="#{bean.text}" escape="false" />
<h:outputText value="#{bean.text}" escape="false" />
<h:outputText value="#{bean.text}" escape="false" />
с
public String getText() throws Exception {
FacesContext.getCurrentInstance().getExternalContext().responseFlushBuffer();
Thread.sleep(250);
return "<br />a line of text";
}
Вы видите их в браузере, которые появляются построчно, а не все сразу.
Обратите внимание, что вышеприведенный подход не очень рекомендуется. Вы можете точно настроить размер буфера ответов с помощью контекстного параметра javax.faces.FACELETS_BUFFER_SIZE
.
<context-param>
<!-- Flush every 128 bytes (default is 1024) -->
<param-name>javax.faces.FACELETS_BUFFER_SIZE</param-name>
<param-value>128</param-value>
</context-param>