jsf监听器没有在嵌套的ui里面调用:重复

时间:2013-02-20 08:58:08

标签: ajax jsf listener

我在使用嵌套在彼此的ui:repeat时遇到问题,我想调用一个监听器。我也尝试了c:forEach,但遇到了同样的问题。

为了演示问题,我已将代码简化为问题。 有两个按钮,第一个在第一个ui内:重复,调用成功的简单监听器。第二个按钮位于嵌套的ui:repeat元素内部,应该调用与第一个按钮相同的侦听器,但是从不调用侦听器。

你能告诉我这有什么不对吗?

<div>
    <ui:repeat var="testList" value="#{testBean.testList}">
        <h:commandButton value="test1">
            // the listener is called if I click this button
            <f:ajax event="click" execute="@this" listener="#{testBean.testListener}" />
        </h:commandButton>
        <ui:repeat var="nestedList" value="#{testList.nestedList}">
            <h:commandButton value="test2">
                // the listener will not be called if I click this button
                <f:ajax event="click" execute="@this" listener="#{testBean.testListener}" />
            </h:commandButton>
        </ui:repeat>
    </ui:repeat>
</div>

1 个答案:

答案 0 :(得分:3)

这是与<ui:repeat>的破损状态管理相关的已知Mojarra问题。具体来说,此问题报告为issue 1817并自Mojarra 2.1.15起修复。

升级您的Mojarra版本。 currently已经是2.1.19。