ui:repeat
リスナーを呼び出したい場所で互いにネストされたものを使用する際に問題があります。c:forEach
代わりに試してみましたが、同じ問題が発生しました。
問題を示すために、コードを問題に単純化しました。最初の ui:repeat 内に 2 つのボタンがあり、単純なリスナーを正常に呼び出します。2 番目のボタンはネストされた 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>