目前我有一个类似于
jsf listener not called inside nested ui:repeat
的问题在我得到这个问题的解决方案后,我将 Mojarra 升级到了 2.1.16 版。
一切正常,直到我实现下面提到的视图。
代码被简化为基础。
xhtml:
<form>
<div>
// listener is called
<h:commandLink value="test1">
<f:ajax event="click" listener="#{testBean.testListener}" />
</h:commandLink>
<ui:repeat var="testList" value="#{testBean.testList}">
// listener is not called !
<h:commandLink value="test2">
<f:ajax event="click" listener="#{testBean.testListener}" />
</h:commandLink>
</ui:repeat>
</div>
</form>
豆:
@ManagedBean(name="testBean")
@ViewScoped
public class TestBean {
private Collection<TestObj> testList;
public Collection<TestObj> getTestList() {
return this.testList;
}
// the listener
public void testListener() {
...
}
}
即使我更改ui:repeat
为c:forEach
,问题也是一样的!
就像我使用@SessionScope
而不是@ViewScope
第二个 commandLink (在迭代内)调用侦听器一样。但我想避免@SessionScope
吃这个豆子。
关于这个问题的原因以及如何处理,你有什么提示吗?