JSF2 f:ajax渲染在一个包含ui的面板上:重复一次双精度数据

时间:2012-07-31 14:51:42

标签: jsf jsf-2 el mojarra

我有一个ui:在h:panelgroup内重复,在面板外面有一个f:ajax。 f:ajax click事件触发h:panelgroup上的渲染。当我加载页面时,转发器在列表中显示我的5个项目。当我第一次单击该按钮时,h:panelgroup加倍到10个项目,每次后续单击只刷新面板上的前5个项目(应该如此)。我究竟做错了什么?不应该渲染事件总是只刷新带有转发器的面板吗?

BEAN:

    @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。

感谢。

ANSWER

如果我删除<p>...</p>并使用<h:outputText value="#{option}"></h:outputText><br/>重新安排

,则不会发生此问题

1 个答案:

答案 0 :(得分:0)

如果我删除<p>...</p>并将其替换为<h:outputText value="#{option}"></h:outputText><br/>

,则不会发生此问题