Jsf 如何在许多机器上刷新dataTable组件?

Jsf 如何在许多机器上刷新dataTable组件?,jsf,jakarta-ee,datatable,primefaces,Jsf,Jakarta Ee,Datatable,Primefaces,我在许多pc上刷新datatable[primefaces module]时遇到了一个问题。我一直在使用官方网站上的例子: 表的代码如下所示: <p:dataTable id="table" var="things" value="#{tableBean.beans}" paginator="true" rows="10" selectionMode="single" .... > <p:socket channel="/updater"> <p:a

我在许多pc上刷新datatable[primefaces module]时遇到了一个问题。我一直在使用官方网站上的例子:

表的代码如下所示:

<p:dataTable id="table" var="things" value="#{tableBean.beans}" paginator="true" rows="10" selectionMode="single" ....  > 
<p:socket channel="/updater">
    <p:ajax event="message" listener="#{tableBean.refreshTable}" update="form:table"  />
</p:socket>
上面的代码不完整,只是片段。我想得到的是这样的东西:
因此,正如您所看到的,在许多机器上,点击计数器按钮使其递增。在我的例子中,我想将行添加到表中[这件事已经完成],我无法让它在许多机器上动态刷新,如果我在一台[pc]上添加两条记录,我必须在另一台[pc]上点击“刷新”才能看到它们。我在这个网站上试过这个把戏:但根本不起作用。欢迎任何想法:)。提前感谢。

Primefaces 4改进了此PrimePush功能

如果您只想从Push事件更新组件,请尝试使用此代码段(摘自Primefaces 4用户指南)

如果您想在中更新组件和/或调用侦听器 在广播时,您可以使用可选消息ajax 行为来实现相同的功能,但具有额外的 请求

代码片段如下所示:

<p:dataTable id="table" var="things" value="#{tableBean.beans}" paginator="true" rows="10" selectionMode="single" ....  > 
<p:socket channel="/updater">
    <p:ajax event="message" listener="#{tableBean.refreshTable}" update="form:table"  />
</p:socket>



希望这有帮助

<p:socket channel="/updater">
    <p:ajax event="message" listener="#{tableBean.refreshTable}" update="form:table"  />
</p:socket>