未在嵌套ui中调用jsf侦听器:repeat



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

为了演示这个问题,我将代码简化为这个问题。有两个按钮,第一个在第一个ui中:repeat,调用successful作为一个简单的监听器。第二个按钮在嵌套的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>

这是一个已知的Mojarra问题,与<ui:repeat>的故障状态管理有关。具体而言,该问题被报告为第1817号问题,自Mojarra 2.1.15以来已修复。

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

最新更新