Primefaces轮询更新整个表单而不是所需的组件

时间:2015-11-11 09:02:32

标签: jsf primefaces

我的表格中有一个仪表板,其中包含三个面板,每个面板都需要以不同的间隔进行更新:

  • panel1的间隔:65秒
  • 面板2的间隔:30秒
  • 面板3的间隔:45秒

为此,我试图使用Primefaces民意调查组件:

myPage.xhtml:(Primefaces版本:5.2)

<h:form id="myForm">

    <p:poll interval="65" update=":panel1" listener="#{myBean.updatePanel1}"/>

    <p:poll interval="30" update=":panel2" listener="#{myBean.updatePanel2}" />

    <p:poll interval="45" update=":panel3" listener="#{myBean.updatePanel3}" />

    <p:dashboard id="board" model="#{bean.dashboardModel}">
        <p:panel id="panel1" header="Panel 1">
            <p:chart id="myPieChart" type="pie" model="#{myBean.myPieChartModel}" />
        </p:panel>

        <p:panel id="panel2" header="Panel 2">
            <p:chart id="myLineChart" type="line"
                model="#{myBean.myLineChartModel1}" />
        </p:panel>

        <p:panel id="panel3" header="panel3">
            <p:chart id="myLineChart2" type="line"
                model="#{myBean.myLineChartModel2}" />
        </p:panel>
    </p:dashboard>
</h:form>

然而,我使用的所有民意调查不只是更新他们与之关联的面板,而是更新整个表单。我该如何解决这个问题?

任何建议都适用。

2 个答案:

答案 0 :(得分:0)

这很好但你必须更改更新参考

<p:poll interval="65" update="panel1" listener="#{myBean.updatePanel1}"/>

<p:poll interval="30" update="panel2" listener="#{myBean.updatePanel2}" />

<p:poll interval="45" update="panel3" listener="#{myBean.updatePanel3}" />

如果你把:panel1它指的是来自&#39; myForm&#39;

的根

答案 1 :(得分:-1)

您可以测试将prependId = false放入表单并在您的民意调查中更新=“board:panel1”。您是否检查过民意调查是否在图表中调用模型组件的get方法?