2013-02-25 1 views
0

Я использую «panelTabbedPane» и создал 3 вкладки с разными элементами обработки. Завершая детали на первой вкладке, переход на 2-й и 3-й работает отлично. Но как только я решил переключиться с 3-й вкладки на 1-й или 2-й, все обновления страницы и загрузка всех данных происходят снова. Его огромный удар по производительности. Может кто-нибудь мне помочь?Переключение вкладок с помощью tomahawk и jsf приводит к обновлению полной страницы и загрузке всех данных.

<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> 
+0

Будет ли эта проблема решена при использовании Richfaces вместо Tomahawk? – user2106747

ответ

0

От documentation:

immediateTabChange

Определить, если модель фазы проверки процесса и обновления должны быть выполнены до изменения между вкладками, когда serverSideTabSwitch = истина (если ложно, то переключатель делается другим способом, поэтому это свойство не имеет никакого эффекта). Обратите внимание: если это свойство установлено как ложное, выполняется только изменение вкладок, если все поля ввода внутри формы действительны (включая входные компоненты вне этой панели). По умолчанию верно, поэтому обе фазы не выполняются.

Поскольку у вас есть serverSideTabSwitch=true, изменение вкладок выполняется по циклу запроса/ответа, как вы это заметили. Однако, установив immediateTabChange=false, это произойдет только после того, как вы открыли все доступные вкладки. Попробуйте установить serverSideTabSwitch=false (но я не знаю, при каких обстоятельствах данные вкладки будут отправлены в конце концов, не пробовали это сами).

Смежные вопросы