0

以下に示すコードでは、発火するボタンはupdate="testTable"3 回呼び出しますが、発火するボタンはBean.getSensors1 回しか発火しません。なんで?update="@form"

<h:form id="form4" prependId="true">
    <p:commandButton value="id" update="testTable" process="@none"/>
    <p:commandButton value="@form" update="@form" process="@none"/>

    <p:dataTable id="testTable" value="#{bean.sensors}"
                    var="sensor"
                    rowStyleClass="#{sensor.alarm ? 'alarm' : null}">
        <p:column headerText="Name" style="min-width: 100px; width: 100px;">
            <h:outputText value="#{sensor.name}"/>
        </p:column>
        <p:column headerText="Value" style="min-width: 100px; width: 100px;">
            <h:outputText value="#{sensor.value}"/>
        </p:column>
    </p:dataTable>
</h:form>

全てに感謝!

4

1 に答える 1

0

これは正常です。JSFとPrimefacesはそれを複数回呼び出す必要があります。パフォーマンスに問題がある場合は、遅延読み込みを使用してください

 public List<Sensor> getSensors(){
    if(sensors == null){
       sensors = ejb.getSensors();
    }
    return sensors;
 }
于 2012-10-20T12:26:49.963 に答える