我正在使用"panelTabbedPane",并创建了3个具有不同处理元素的选项卡。完成第一个选项卡上的详细信息,切换到第二个和第三个工作非常好。但一旦我决定从第三个选项卡切换到第一个或第二个,整个页面的刷新和所有数据的加载就会再次发生。它在表演上大受欢迎。有人能帮我吗?
<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
(但我不知道在什么情况下最终会提交选项卡数据,我自己也没有尝试过(。