0

ah:panelgroup 内に ui:repeat があり、パネルの外に af:ajax があります。f:ajax クリック イベントは、h:panelgroup でレンダリングをトリガーします。ページを読み込むと、リピーターは私の 5 つのアイテムをリストに表示します。ボタンを初めてクリックすると、h:panelgroup が 2 倍の 10 項目になり、その後クリックするたびに、パネルの最初の 5 項目が更新されます (当然のことです)。私は何を間違っていますか?レンダリング イベントは、常にリピーターを含むパネルを更新するだけでよいのではないでしょうか?

豆:

    @ManagedBean(name = "TestBean")
    @RequestScoped
    public class TestBean {
    private List testStrings;
    public TestBean() {
    Random rn = new Random(System.currentTimeMillis());
    testStrings = Arrays.asList(rn.nextInt(),rn.nextInt(),rn.nextInt(),rn.nextInt(),rn.nextInt());
        }
    }
    public List getTestStrings() {
        return testStrings;
    }

    public void setTestStrings(List testStrings) {
        this.testStrings = testStrings;
    }

JSF:

    <h:commandButton value="Refresh">
            <f:ajax event="click" render="testPanel"></f:ajax>
    </h:commandButton>
    <p>
    <h:panelGroup id="testPanel">
            <ui:repeat var="option" value="#{TestBean.testStrings}" varStatus="status">
                    <p>
                            <h:outputText value="#{option}"></h:outputText>
                    </p>
            </ui:repeat>
    </h:panelGroup>
    </p>

私はmojarra 2.1を使用していると思います。

ありがとう。

答え

<p>...</p>を取り外して交換しても問題は発生しません<h:outputText value="#{option}"></h:outputText><br/>

4

1 に答える 1

0

<p>...</p>を削除して交換しても問題は発生しません<h:outputText value="#{option}"></h:outputText><br/>

于 2012-07-31T15:36:54.913 に答える