a4j:poll调用每个ui的值方法:在页面上重复

时间:2012-11-26 13:13:46

标签: jsf-2 richfaces java-ee-6

我的pageTemplate中有一个a4j:poll,只是重新呈现一个区域,显示用户拥有的未读消息数。

问题是,每个值 - 在页面上重复ui:repeat的方法都被调用。它不是一个rerender,只是调用了方法,但是ui:repeat永远不会被重新渲染。

我的模板中的a4j:poll方法:

<h:form id="msg_notif_rep">
    <a4j:region>
        <a4j:poll interval="5000" render="msg_notif" limitRender="true" enabled="false"/>
    </a4j:region>
</h:form>

reRendered Region位于插入Template:

的menuPage中
<h:panelGroup layout="block" id="msg_notif">
    <h:panelGroup layout="block" styleClass="header_message_notification" rendered="#{generalServices.getNumberOfUnreadMessagesForCompany(login.currentCompany.id) > 0}">
        <h:panelGroup layout="block" styleClass="header_notification_image">
            <ui:insert name="notification_img"></ui:insert>
        </h:panelGroup>
        <h:panelGroup layout="block" styleClass="header_notification_number">
            <h:outputText value="#{generalServices.getNumberOfUnreadMessagesForCompany(login.currentCompany.id)}" />
        </h:panelGroup>
    </h:panelGroup>
</h:panelGroup>

现在每个值 - 方法ui:在使用a4j:poll所在的模板的JSF-Page中重复将每5秒调用一次,但是ui:repeat永远不会被重新调整。

例如:

<h:panelGroup layout="block" rendered="#{!messagesCompany.showSingleConv}" styleClass="message_overview_cont" id="conv_overview">
    <ui:repeat value="#{messagesCompany.allConvos}" var="c">
        <tb:conversationOverviewCompany conv="#{c}" isTibConv="#{c.tibMessage}" 
                        containerID="#{rich:clientId('cont')}, #{rich:clientId('msg_notif')}, #{rich:clientId('msg_notif_rep')}" />
    </ui:repeat>
</h:panelGroup>

替换ui:用a4j重复:repeat不会改变行为,也会删除ui中的所有内容:repeat没有帮助。 不调用各种其他方法(a4j:commandLink,getter-methods for h:outputText ...),只调用ui的值 - 方法:重复。

有没有办法阻止这种行为?

0 个答案:

没有答案