You need to ensure that the conditionals responsible for the outcome of the rendered
attribute are also the same in the subsequent request of the form submit. Because when a component isn't rendered, JSF won't apply the request values them.
In a nutshell, the property behind #{selectedPeriodPart}
needs to be the same in the subsequent request. There are several solutions:
Put bean in session scope. Easiest solution, but bad for server memory and client experience (updates would be reflected in multiple tabs/windows in same session).
Pass it through using
<h:inputHidden>
. Not sure though how this fits in the Ajax/Richfaces picture. Better use<a4j:keepAlive>
here.Use a conversation scope. Seam offers facilities for this.