我在使用嵌套在彼此的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>
答案 0 :(得分:3)
这是与<ui:repeat>
的破损状态管理相关的已知Mojarra问题。具体来说,此问题报告为issue 1817并自Mojarra 2.1.15起修复。
升级您的Mojarra版本。 currently已经是2.1.19。