【问题标题】:primefaces 5.0 dynamic tabs can't invoke tabchangeprimefaces 5.0 动态选项卡无法调用 tabchange
【发布时间】:2014-06-19 16:46:23
【问题描述】:

我正在使用带有动态选项卡和事件侦听器支持的 p:tabView。 看起来像这样: .xhtml

 <h:form id="pageFm">
    <p:tabView scrollable="true"  value="#{MainBean.pagelist}" var="tab" activeIndex="#{MainBean.activeindex}" id="tabview" dynamic="true" cache="false">
    <p:ajax event="tabChange" listener="#{MainBean.onChange}" />
        <p:tab title="#{tab.pagename}" closable="true">
    <ui:include src="#{tab.pagepath}" />
    </p:tab>
</p:tabView>
</h:form>

管理豆:

public void onChange(TabChangeEvent event){
System.out.println("ok");
}

当我切换标签时,不会调用此方法。 我不知道为什么。 能给我一些帮助吗? 谢谢

【问题讨论】:

    标签: java jsf primefaces


    【解决方案1】:

    如果您使用默认类名来引用 managedBean,那么在您的视图页面中,您必须设置 mainBean 而不是 MainBean 。您已经设置了listener="#{MainBean.onChange}",因此您必须定义一个名为public void onChange(TabChangeEvent) 的方法,该方法将在选项卡更改时调用。

    注意:我们所说的 tabChange 是指在 tabView 中选择另一个选项卡的事件,在您的情况下,您似乎只有一个选项卡,请尝试添加另一个选项卡

    【讨论】:

      【解决方案2】:

      你的 Bean 监听器应该是

      public void onChange(TabChangeEvent event){
            System.out.println("ok");
      }
      

      第二个问题与 ui:include 的使用有关,该变量(选项卡)在渲染阶段之前不应该可用,ui:include 标记是在恢复阶段构建的。

      【讨论】:

      • 我已经更改了 Bean Listener 的名称。但仍然不能 inverko
      猜你喜欢
      • 1970-01-01
      • 2014-10-07
      • 2013-04-02
      • 2011-05-02
      • 2018-12-30
      • 2016-05-18
      • 2014-07-02
      • 2014-11-02
      • 1970-01-01
      相关资源
      最近更新 更多