目前我遇到了类似的问题
jsf listener not called inside nested ui:repeat
在我解决了这个问题后,我将Mojarra升级到2.1.16版
Everthing工作正常,直到我实施下面提到的观点。
本规范简化为基础。
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
。
关于这个问题的原因以及如何处理,你对我有什么提示吗?