Hi Alfred,
Do you need something like this.
<ui:fragment
xmlns="http://www.w3.org/1999/xhtml"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:rich="http://richfaces.org/rich"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:cc="http://java.sun.com/jsf/composite/components/correspondence">
<rich:tabPanel
id="tabp_topic"
rendered="#{registeredUser.allowed(permissions.corrTopicDisplay)}"
switchType="client"
activeItem="#{correspondenceTopicOverviewBean.tabController.activeTab}">
<rich:tab
id="tab_topicReason"
name="tab_topicReason"
header="#{commonTrans.corTopicReasons}"
rendered="#{correspondenceTopicOverviewBean.topicIndividual}"
onheaderclick="changeTabToReasons()">
<ui:include src="reason/reasonOverview.xhtml" />
</rich:tab>
<rich:tab
id="tab_topicMapping"
name="tab_topicMapping"
header="#{commonTrans.corTopicMappings}"
rendered="#{correspondenceTopicOverviewBean.topicSystemic}"
onheaderclick="changeTabToMappings()">
<ui:include src="mapping/mappingOverview.xhtml" />
</rich:tab>
<rich:tab
id="tab_topicNoSelection"
name="tab_topicNoSelection"
header="#{commonTrans.corTopicReasonsOrMappings}"
rendered="#{not correspondenceTopicOverviewBean.topicSelected}"
onheaderclick="changeTabToDefault()">
<cc:noTopicSelected />
</rich:tab>
<rich:tab
id="tab_topicParameter"
name="tab_topicParameter"
header="#{commonTrans.corTopicParameters}"
onheaderclick="changeTabToParameters()">
<ui:include src="parameter/parameterOverview.xhtml" />
</rich:tab>
<rich:tab
id="tab_topicTemplate"
name="tab_topicTemplate"
header="#{commonTrans.corTopicTemplates}"
onheaderclick="changeTabToTemplates()">
<ui:include src="template/topicTemplateOverview.xhtml" />
</rich:tab>
</rich:tabPanel>
<a4j:jsFunction
id="js_changeTabToReasons"
name="changeTabToReasons"
immediate="true"
action="#{correspondenceTopicOverviewBean.tabController.setReasonsTab}" />
<a4j:jsFunction
id="js_changeTabToMappings"
name="changeTabToMappings"
immediate="true"
action="#{correspondenceTopicOverviewBean.tabController.setMappingsTab}" />
<a4j:jsFunction
id="js_changeTabToDefault"
name="changeTabToDefault"
immediate="true"
action="#{correspondenceTopicOverviewBean.tabController.setDefaultTab}" />
<a4j:jsFunction
id="js_changeTabToParameters"
name="changeTabToParameters"
immediate="true"
action="#{correspondenceTopicOverviewBean.tabController.setParametersTab}" />
<a4j:jsFunction
id="js_changeTabToTemplates"
name="changeTabToTemplates"
immediate="true"
action="#{correspondenceTopicOverviewBean.tabController.setTemplatesTab}" />
</ui:fragment>
And in all the tabs I have Data-Table and only that data-table for the given is refreshed if there was any change.
For example the first Tab code,
<f:metadata>
<f:event
type="preRenderView"
listener="#{correspondenceTopicOverviewBean.reasons.dataModel.preRenderModelLoad}" />
</f:metadata>
<h:panelGroup
id="pgr_topicReason"
rendered="#{registeredUser.allowed(permissions.corrTopicDisplay)}">
<a4j:region
id="reg_topicReasonSelected"
rendered="#{correspondenceTopicOverviewBean.topicSelected}">
<h:panelGroup
id="pgr_createTopicReason"
rendered="#{registeredUser.allowed(permissions.corrTopicModify)}">
<div align="right">
<a4j:commandLink
id="cl_createTopicReason"
value="#{commonTrans.corTopicReasonCreateBtn}"
styleClass="rf-ds-btn"
render="pgr_reasonCreatepopUps"
execute="@this"
action="#{correspondenceReasonCrudWflBean.startNew}" />
</div>
</h:panelGroup>
<hr />
<h:form id="f_topicReasonTable">
<rich:dataTable
id="tbdt_topicReasonTable"
var="reason"
iterationStatusVar="it"
value="#{correspondenceReasonOverviewBean.dataModel}"
rows="5"
style="width: 100%;">
<rich:column
id="tbc_topicReasonAction"
width="100px">
<f:facet name="header">
<h:outputText
id="out_topicReasonActionHeader"
value="#{commonTrans.corTopicTableAction}" />
</f:facet>
<div align="center">
<h:panelGroup
id="pgr_deleteTopicReason"
rendered="#{registeredUser.allowed(permissions.corrTopicModify)}">
<a4j:commandLink
id="cl_deleteTopicReason"
styleClass="no-decor"
render="pgr_reasonDeletepopUps"
execute="@this"
action="#{correspondenceReasonCrudWflBean.startDelete}">
<h:graphicImage
id="img_deleteTopicReason"
value="/images/tables/row_delete.gif"
alt="#{commonTrans.corTopicReasonDeleteImageAlt}" />
<f:setPropertyActionListener
target="#{correspondenceReasonCrudWflBean.topicReasonToBeDeleted}"
value="#{reason}" />
</a4j:commandLink>
</h:panelGroup>
</div>
</rich:column>
Let me know if this gives you any help or you need some more information.
In sort use <a4j:region> for each tabs and render then using their ID's.
Hope this help you.
Cheers,
Sandy