0

我有一个 ui:repeat。我希望它每 5 秒刷新一次。我试过 p:poll 但它不起作用。有什么办法可以使这个工作吗?

<ui:repeat value="#{videoImpl.fGetAllComments()}" var="v" id="commentlist">
<div class="comment-entry"><h:outputText value="#{v.comment}"/></div>
</ui:repeat>

<p:poll update="commentlist" interval="5" />
4

1 回答 1

5

<ui:repeat>本身不会生成任何 HTML 。因此 HTML 输出中没有元素,id="commentlist"因此后面的 JS 代码<p:poll>找不到任何要更新的内容。

将它包装在另一个 JSF 组件中,该组件呈现一个完整的 HTML 元素,例如<h:panelGroup>, 并更新它。

<h:panelGroup id="commentlist">
    <ui:repeat value="#{videoImpl.fGetAllComments()}" var="v">
        <div class="comment-entry">#{v.comment}</div>
    </ui:repeat>
</h:panelGroup>

<p:poll update="commentlist" interval="5" />
于 2012-05-30T17:52:30.523 回答