Ajax 未在嵌套ui内调用jsf侦听器:重复

Ajax 未在嵌套ui内调用jsf侦听器:重复,ajax,jsf,listener,Ajax,Jsf,Listener,我在使用ui:repeat时遇到了一个问题,我想在其中调用侦听器。我也尝试了c:forEach,但是遇到了同样的问题 为了演示这个问题,我将代码简化为这个问题。 有两个按钮,第一个在第一个ui中:repeat,调用一个简单的侦听器。第二个按钮位于嵌套的ui:repeat元素中,应该调用与第一个按钮相同的侦听器,但从未调用该侦听器 你能告诉我这有什么问题吗 <div> <ui:repeat var="testList" value="#{testBean.testList

我在使用
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>

//如果单击此按钮,将调用侦听器
//如果单击此按钮,将不会调用侦听器

这是一个已知的Mojarra问题,与
的断开状态管理有关。特别是,自Mojarra 2.1.15以来,该问题被报告为并已修复


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

您的
h:form
在哪里?同时从按钮中删除
event=“click”execute=“@this”
。这里有一个周围的
h:form
,我刚刚简化了这里的代码。我在实际代码中不使用按钮,只是为了自己测试和演示。即使我删除了这两个属性,第二个按钮也不会调用侦听器。非常感谢。这就解决了问题。但不幸的是,在使用Mojarra 2.1.17和2.1.19调用javax.servlet.http.Cookie.setDomain中的侦听器之后,我得到了一个NullPointerException。以前的版本(2.1.16)运行良好!根据您编辑的评论,提出一个带有完整stacktrace的新问题,或者如果您确信这是一个Mojarra bug,请将其报告给Mojarra家伙。