JSF中panelTabbedPane的selectedIndex属性不起作用

时间:2012-09-23 14:07:08

标签: jsf tomahawk

JSP代码

<t:panelTabbedPane align="left"  serverSideTabSwitch="false" styleClass="tabbedPane" 
            activeTabStyleClass="activeTab" inactiveTabStyleClass="inactiveTab" width="100%" cellpadding="0"
            cellspacing="0" tabContentStyleClass="tabContent" style="margin-top:0px;text-align:center"
            selectedIndex="#{myBB.selectedTab}">

/ * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * *** /

支持Bean代码:

private int selectedIndex;



    public int getSelectedIndex() {
        System.out.println("getter of selectedIndexis called "+selectedIndex);
        return selectedIndex;
    }

    public void setSelectedIndex(int selectedIndex) {
        System.out.println("Setter of selectedIndexis called "+selectedIndex);
        this.selectedIndex= selectedIndex;
    }

支持bean是会话范围。 当我在屏幕中更改panelTab并单击提交按钮时,始终显示默认面板。我检查了控制台,从控制台中的selectedIndex.But的setter中找到了sysout,它没有被打印,这意味着(我想)selectedIndex没有被发布到服务器。我使用的是JSF 1.1版。任何人都可以建议如何使这项工作?

2 个答案:

答案 0 :(得分:1)

根据docsselectedIndex是要使用的默认选项卡索引,而不是当前实际选择的选项卡索引。

话虽如此,您可以使用<t:tabChangeListener>来选择当前选中的标签。

答案 1 :(得分:1)

对于任何可能遇到此问题的人:

您需要设置serverSideTabSwitch =“true”并使用tabChangeListener,否则选项卡开关(以及已知的选项卡索引)完全在客户端中完成。