为什么ui:重复使我的应用程序变慢,我该如何解决?

时间:2014-07-10 15:27:39

标签: jsf primefaces

我有一个包含ui:repeat的primefaces向导,如下所示:

<p:wizard flowListener="#{reportWizard.onFlowProcess}" widgetVar="wiz" showStepStatus="false" showNavBar="false">
    <p:tab id="problem" title="Problem">
        <p:panel header="What's the problem?" styleClass="wizardPanel">
            <p:messages />
            <h:panelGrid width="100%" columns="1">
                <ui:repeat value="#{incidentData.incidentTypes}" var="incidentTypes">
                    <p:commandButton process="@this" value="#{incidentTypes.name}" actionListener="#{reportWizard.evalProblemType}" onclick="PF('wiz').next();" styleClass="ui-priority-primary" />
                </ui:repeat>
            </h:panelGrid>
        </p:panel>
    </p:tab>
    // ... more tabs ...    
</p:wizard>

基本上,我只是通过
从我的数据库中获取commandButton个标题 #{incidentData.incidentTypes}

以前,我有一个commandButton s的静态列表,它工作正常,但现在我正在使用ui:repeat,它使页面非常慢(向导的每一步都需要一个第二或第二回应)。出于某种原因,当向导前进到每个步骤时,会多次调用getIncidentTypes(),即使按钮仅在向导的第一步中,并且查询应该只运行一次。这是为什么?

这不是使用数据库驱动按钮的正确方法吗?我该怎么做才能解决这个问题?感谢。

0 个答案:

没有答案