如何使用Primefaces在JSF页面中显示来自Java缓冲区的消息

时间:2012-06-10 13:38:20

标签: java jsf jsf-2 primefaces

我设法用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>

但这只有在我调用动作监听器时才有效。

1 个答案:

答案 0 :(得分:3)

您的示例仅在按下按钮时才起作用的原因是您正在更新growl元素。

您可以做两件事来确保不断收到新消息。

使用推送时,服务器会在必要时将更新推送到客户端。 PrimeFaces有some examples可以帮助你实现推动。我不知道这是否适用于所有浏览器。

轮询

使用轮询,客户端会定期检查更新(可能会产生大量网络流量)。 PrimeFaces有一个poll元素,可以让事情变得更简单,看看the example。 AFAIK它使用JavaScript,因此它应该适用于大多数现代浏览器。