嵌套的jsf侦听器未在@ViewScope中调用

时间:2013-03-14 10:31:23

标签: ajax jsf listener

目前我遇到了类似的问题 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

关于这个问题的原因以及如何处理,你对我有什么提示吗?

0 个答案:

没有答案