Primefaces Poll不会在ui中重复呈现内容:重复

时间:2015-08-28 09:10:58

标签: jsf primefaces

在我的支持bean中,我有一个提供列表内容的方法,我使用ui:repeat标记在JSF中显示。

public List<ContentViewItem> getContentViewItemList() {
    setContentViewItemList(contentViewItemService.getContentViewItems("" + sessionBean.getSelectedProject().getId(), sessionBean.getLanguageCode()));
    return this.contentViewItemList;
}

列表的内容会从应用程序的其他部分更改,因此我希望使用p:poll来频繁更新列表。

<h:form>
<h:panelGroup id="commentlist">
    <ui:repeat var="contentItem" value="#{contentItemBean.contentViewItemList}">
        <li class="list-item-elements type #{contentItem.contentType == 'Partition' ? 'border-left-orange' : contentItem.contentType == 'Chunk' ? 'border-left-red' : 'border-left-red' }"
            data-ix="list-item">
            <h:outputText value="#{contentItem.description}"/>
        </li>
    </ui:repeat>
</h:panelGroup>

<p:poll update="commentlist" listener="#{contentItemBean.refresh}"
        interval="5"/>
</h:form>

因为我不需要listener方法来执行任何逻辑,所以我实现了refresh方法返回null而没有任何功能。

正确呈现页面,显示所有项目。当p:poll进行刷新时,所有项目都会消失。我也尝试调用getter方法getContentViewItemList而不是刷新,但它的行为相同。

更新

这也不起作用。

<h:form id="commentlist">
<h:panelGroup>
    <ui:repeat var="contentItem" value="#{contentItemBean.contentViewItemList}">
        <li class="list-item-elements type #{contentItem.contentType == 'Partition' ? 'border-left-orange' : contentItem.contentType == 'Chunk' ? 'border-left-red' : 'border-left-red' }"
            data-ix="list-item">
            <h:outputText value="#{contentItem.description}"/>
        </li>
    </ui:repeat>
</h:panelGroup>
</h:form>

<h:form>
<p:poll update="commentlist" listener="#{contentItemBean.refresh}"
        interval="5"/>
</h:form>

更新II 我在支持bean中添加了一个int变量,每次调用都会增加。计数器工作并更新,当第一次刷新发生时,列表消失。

此致

0 个答案:

没有答案