使用tomahawk和jsf切换选项卡会导致整个页面刷新并再次加载所有数据

使用tomahawk和jsf切换选项卡会导致整个页面刷新并再次加载所有数据,jsf,tomahawk,Jsf,Tomahawk,我使用“panelTabbedPane”,创建了3个具有不同处理元素的选项卡。完成第一个选项卡上的详细信息后,切换到第二个和第三个选项卡效果很好。但一旦我决定从第3个选项卡切换到第1个或第2个选项卡,整个页面的刷新和所有数据的加载就会再次发生。这是对性能的巨大冲击。有人能帮我吗 <t:panelTabbedPane enabledOnUserRole="true" binding="#{ABCController.tabSet}" serverSideTa

我使用“panelTabbedPane”,创建了3个具有不同处理元素的选项卡。完成第一个选项卡上的详细信息后,切换到第二个和第三个选项卡效果很好。但一旦我决定从第3个选项卡切换到第1个或第2个选项卡,整个页面的刷新和所有数据的加载就会再次发生。这是对性能的巨大冲击。有人能帮我吗

 <t:panelTabbedPane enabledOnUserRole="true"
                binding="#{ABCController.tabSet}" serverSideTabSwitch="true"
                styleClass="tabbedPane" activeTabStyleClass="activeTab"
                inactiveTabStyleClass="inactiveTab"
                disabledTabStyleClass="disabledTab" activeSubStyleClass="activeSub"
                tabContentStyleClass="tabContent"
                immediateTabChange="false">

                <t:panelTab id="panelTab1" disabled="#{abc.disableTabOne}"
                    label="#{abc.tab1LabelTxt}">
                    <jsp:include page="./test1.jsp"></jsp:include>
                </t:panelTab>

                <t:panelTab id="panelTab2"  disabled="#{abc.disableTabTwo}"
                    label="#{abc.tab2LabelTxt}">
                    <jsp:include page="./test2.jsp"></jsp:include>
                </t:panelTab>

                <t:panelTab id="panelTab3" disabled="#{abc.disableTabThree}"
                    label="#{abc.tab3LabelTxt}" >
                    <h:outputText rendered="#{!abc.downloadView}">
                       <jsp:include page="./test3.jsp"></jsp:include>
                    </h:outputText>
                    <h:outputText rendered="#{abcn.downloadView}">
                        <jsp:include page="./test4.jsp" />
                    </h:outputText>
                </t:panelTab>

                <t:tabChangeListener
                    type="org.portlets.controller.ABCController" />
            </t:panelTabbedPane>

来自:

立即改变

定义当serverSideTabSwitch=true时,是否应在选项卡之间更改之前执行流程验证和更新模型阶段(如果为false,则通过其他方式进行切换,因此此属性不会产生任何影响)。请注意,如果此属性设置为false,则只有在表单中的所有输入字段都有效(包括此面板之外的输入组件)时,才会更改选项卡。默认情况下为true,因此不执行两个阶段


由于您有
serverSideTabSwitch=true
,选项卡更改是通过您观察到的请求/响应周期完成的。然而,通过设置
immediateTabChange=false
,只有在查看了所有可用的选项卡之后,才会发生这种情况。尝试设置
serverSideTabSwitch=false
(但我不知道在什么情况下最终会提交选项卡数据,我自己也没有尝试过)。

当使用Richfaces而不是Tomahawk时,这个问题会得到解决吗?