需要将当前选项卡名称从动态生成的选项卡传递给支持托管bean



我使用的是素数面。我的要求是拥有一定数量的选项卡,这些选项卡将根据backingbean中指定的列表生成。现在的第二个标准是,如果选项卡发生更改,那么该选项卡下的内容也应该发生更改。因此,我保留了onChange事件,并试图通过event.getTab().getTitle()获取值,但它正在向backingbean返回null。

<p:tabView id="tabView" binding="#{dndProductsView.tabView}">
        <p:ajax event="tabChange" listener="#{dndProductsView.onTabChange}"/>
</p:tabView>

托管Bean所需的代码如下:-

@PostConstruct
public void init() {
    user = SessionBean.getUserName();
    categorylist = categoryLogics.findAllOrderedByCategoryName();
    productList = productLogics.findAllOrderedByProductName();
    droppedProducts = new ArrayList<Product>();
}
private TabView tabView;
@Inject
private FacesContext facesContext;
public void setTabView(TabView tabView) {
    this.tabView = tabView;
}
public TabView getTabView() {
    tabView = new TabView();
    for (Category c : categorylist) {
        Tab t = new Tab();
        t.setTitle(c.getCategoryName());
        tabView.getChildren().add(t);
    }
    return tabView;
}
public void onTabChange(TabChangeEvent event) {
    String titleName =  event.getTab().getTitle();
    System.out.println("" + titleName);
}

选项卡正在正确生成,当选项卡更改时,会调用onTabChange()方法,但event.getTab().getTitle()返回null。

Integer index=(Integer)tabview.getActiveIndex();

它不是一个名字,但它是活动选项卡的索引,在这种情况下,它是你感兴趣的。索引从0开始作为第一个选项卡:)

相关内容

  • 没有找到相关文章

最新更新