我在许多电脑上面临刷新数据表[primefaces模块]的问题。我一直在使用官方网站上的例子:
http://www.primefaces.org/showcase-labs/ui/datatableRowSelectionSingle.jsf
表的代码开头如下:
<p:dataTable id="table" var="things" value="#{tableBean.beans}" paginator="true" rows="10" selectionMode="single" .... >
和按钮:
<p:commandButton value="Ajax Submit" update="table" id="ajax" actionListener="#{tableBean.savePerson}" ajax="true">
套接字代码:
<p:socket onMessage="handleMessage" channel="/updater" />
“听众”的代码:
PushContext pushContext = PushContextFactory.getDefault().getPushContext();
pushContext.push("/updater", forBeingUpdated);
上面的代码不完整,只是代码段。我想得到的是这样的事情: http://www.primefaces.org/showcase-labs/push/counter.jsf 因此,您可以看到按下计数器按钮使其在许多机器上递增。在我的情况下,我想在表中添加行[并且这件事已经完成]我无法让它在许多机器上动态刷新,如果我在一台[pc]上添加几条记录我必须在另一台机器上刷新去看他们。我尝试过这个网站的技巧:http://blog.primefaces.org/?p=2119但它根本不起作用。欢迎任何想法:)。提前谢谢。
答案 0 :(得分:1)
Primefaces 4改进了这个PrimePush功能。
如果您只想更新Push Event中的组件,请尝试使用此片段(摘自Primefaces 4用户指南)
如果您想要更新组件和/或调用侦听器 在广播时你的支持bean,你可以使用可选的消息 ajax 用于实现相同功能但具有额外功能的行为 请求。
代码片段看起来像这样:
<p:socket channel="/updater">
<p:ajax event="message" listener="#{tableBean.refreshTable}" update="form:table" />
</p:socket>
希望这有帮助!