我设法用Primefaces创建包。我想创建Java缓冲区并以FIFO顺序存储消息。当消息插入缓冲区时,我想将它显示在JSF页面中。我如何使用Primefaces做到这一点?
我找到了Primefaces的例子:
<h:form id="dccd">
<p:growl id="growl" showDetail="true" sticky="true" />
<p:panel header="Growl">
<h:panelGrid columns="2">
<h:outputText value="Your Name: *" />
<p:inputText value="#{bean.text}" required="true" label="Name"/>
</h:panelGrid>
<p:commandButton value="Save" actionListener="#{bean.save}" update="growl"/>
</p:panel>
</h:form>
但这只有在我调用动作监听器时才有效。
答案 0 :(得分:3)
您的示例仅在按下按钮时才起作用的原因是您正在更新growl元素。
您可以做两件事来确保不断收到新消息。
使用推送时,服务器会在必要时将更新推送到客户端。 PrimeFaces有some examples可以帮助你实现推动。我不知道这是否适用于所有浏览器。
使用轮询,客户端会定期检查更新(可能会产生大量网络流量)。 PrimeFaces有一个poll元素,可以让事情变得更简单,看看the example。 AFAIK它使用JavaScript,因此它应该适用于大多数现代浏览器。