Jsf 2 rich:tabPanel加载选项卡开关上所有选项卡的数据

Jsf 2 rich:tabPanel加载选项卡开关上所有选项卡的数据,jsf-2,tabs,richfaces,tabpanel,Jsf 2,Tabs,Richfaces,Tabpanel,我的ui文件中有一个设置为ajax的switchType。它有4个标签。问题是当我点击tab1时,它会加载tab1的数据。但是,当我点击tab2时,它会加载tab1和tab2的数据。单击tab3时,加载tab1、tab2和tab3的数据。等等我怎样才能避免这种行为?它应该只加载选中或单击的选项卡的数据,而不是加载之前的所有选项卡的数据 我使用RichFaces4和JSF2.0 代码如下: <rich:tabPanel status="loadingMask" id="tabPanelTe

我的ui文件中有一个设置为ajax的switchType。它有4个标签。问题是当我点击tab1时,它会加载tab1的数据。但是,当我点击tab2时,它会加载tab1和tab2的数据。单击tab3时,加载tab1、tab2和tab3的数据。等等我怎样才能避免这种行为?它应该只加载选中或单击的选项卡的数据,而不是加载之前的所有选项卡的数据

我使用RichFaces4和JSF2.0

代码如下:

<rich:tabPanel  status="loadingMask" id="tabPanelTest" switchType="ajax" style="height:80%;width:100%;padding-top:5px">
        <a4j:ajax event="itemchange"  render="tabPanelTest" />
        <rich:tab header="Tab 1" id="TAB 1">
            <h:panelGroup layout="block" style="height:100%;width:100%;" id="tab1view">
                <ui:include src="tab-1-file.xhtml"/>
            </h:panelGroup>
        </rich:tab>
        <rich:tab header="Tab 2" id="TAB 2">
            <h:panelGroup layout="block" style="height:100%;width:100%;" id="tab2view">
                <ui:include src="components/tab-2-file.xhtml"/>
            </h:panelGroup>
        </rich:tab>
        <rich:tab header="Tab 3" id="TAB 3">
            <h:panelGroup layout="block" style="height:100%;width:100%;" id="tab3view">
                <ui:include src="tab-3-file.xhtml"/>
            </h:panelGroup>
        </rich:tab>
        <rich:tab header="Tab 4" id="TAB 4">
            <h:panelGroup layout="block" style="height:100%;width:100%;" id="tab4view">
                <ui:include src="tab-4-file.xhtml"/>
            </h:panelGroup>
        </rich:tab>             
</rich:tabPanel>

你对数据的确切含义是什么?你怎么知道的?您应该只看到一个面板。你有没有试过不穿衣服?我认为这是不必要的,而且您渲染整个面板可能会导致这种行为。它也在尝试渲染以前的选项卡。这就是我说的加载数据的意思。它尝试访问前面选项卡中所有变量的getter。当我进入调试模式并单击tab3时,我可以看到调用tab1和tab2的支持bean的控制器和getter方法。我认为这是正常的行为。JSF将遍历视图组件树并搜索该选项卡。显然,它将首先遍历第一个选项卡以找到正确的选项卡。尝试使用呈现的={…}并禁用像这样的非活动选项卡,以便不再访问内容。问题重复。