小编典典

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

ajax

ui:repeat在互相嵌套时想调用侦听器时遇到问题。我也尝试过c:forEach,但是遇到了同样的问题。

为了演示问题,我将代码简化为问题。有两个按钮,第一个位于第一个ui:repeat内部,将成功的调用为简单的侦听器。第二个按钮位于嵌套的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>

阅读 220

收藏
2020-07-26

共1个答案

小编典典

这是一个已知的Mojarra问题,涉及到的中断状态管理<ui:repeat>。特别是,此问题报告为问题1817,自Mojarra
2.1.15起已修复。

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

2020-07-26