I have a single page with a dozen or so tabs nested within a tabpanel. Each tab opens a separate page (using the 'server' switch type) and utilizes its own scoped session or backing bean. Presently all of the backing beans are set to a 'page' scope but I'm debating whether they should in fact be using a 'conversation' scope instead as any created beans seem to persist when the user navigates from tab to tab. (I was hoping that using the 'server' switch type would mean that only the currently viewed page would ever have an active bean running in the background.)
Would using the conversation scope solve this issue and be more memory efficient?
If so how would I end the conversation of the current bean when the user navigates to another tab?
Any help or advice would be greatly appreciated.
you could use the conversation bean and call end method of the conversation in action of the tab.
And as we used it without Seam - we had c:if around every tab content include and it evaluated to true only in case tab is active. That guaranties that the components itself will not be present in the JSF tree when the tab is inactive.