Mojarra 2.1.
I checked the method public void execute(FacesContext facesContext) throws FacesException
in the class com.sun.faces.lifecycle.RestoreViewPhase
. Now, once the view's restored by the invokation viewRoot = viewHandler.restoreView(facesContext, viewId);
we have the compelete tree from the previous request (if it's a postback).
I checked that tree (manually iterate through the children
properties of the components in a debugger) and found that the composite components, declared as follows:
<h:panelGroup rendered="#{bean.id == 1}">
<utils:dropDownListFilterItem />
</h:panelGroup>
<h:panelGroup rendered="#{bean.id == 2}">
<utils:dateFilterItem />
</h:panelGroup>
<h:panelGroup rendered="#{bean.id == 3}">
<utils:fieldFilterItem />
</h:panelGroup>
were all in that tree. It happaned in spite of the fact that #{bean.id}
was evaluated to 2. I expceted that the only <utils:dateFilterItem />
instance would be in the tree.
So, my question is how the rendered
attribute is handled by Mojarra? Is the attribute infuences the only render-responces phase?