繁体   English   中英

持有ui:repeat的面板上的JSF2 f:ajax渲染将数据翻倍

[英]JSF2 f:ajax render on a panel holding a ui:repeat doubles data once

我在ah:panelgroup内有一个ui:repeat,在面板外有af:ajax。 f:ajax click事件触发h:panelgroup上的渲染。 当我加载页面时,转发器会在列表中显示我的5个项目。 当我第一次单击该按钮时,h:panelgroup会翻倍至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/>重新放置,则不会发生此问题。

如果删除<p>...</p>并用<h:outputText value="#{option}"></h:outputText><br/>重新放置,则不会发生此问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM