1

我正在尝试创建一个accordion panel使用 bean 动态加载的方法,并且它必须在其他 bean 上触发方法,当用户单击tab.Panel 创建时,该方法会被单击选项卡标题。面板创建运行良好,并且还调用了侦听器,但侦听器没有获得点击的项目标题。谁能指出我的问题或指出我这样做的正确方法。

.xhtml

<p:accordionPanel activeIndex="-1"  dynamic="true" cache="false"
                              value="#{beanOne.ItemList}"
                              var="item">
                <p:ajax event="tabChange" listener="#{beanTwo.onTabChange}"   />
                <p:tab title="#{item.title}">                       
                    //view other content of item
                </p:tab>
</p:accordionPanel>

public void onTabChange(TabChangeEvent event) {
    System.out.println("onTabChange :"+event.getTab().getTitle());
}

我认为这是因为面板动态加载选项卡。但是有没有其他选择?

4

1 回答 1

1

最后我做到了。

我像这样更改我的 bean onTabChange 方法。它正在工作......

    Object o = event.getData();
    Item t = (Item) o;
    System.out.println("onTabChange :"+t.getTitle);

它没有给出 tab.title,但它给出了与单击的选项卡相关的对象(项目)。

于 2013-01-16T11:28:40.477 回答