I have f:event
inside a h:panelGroup
component with rendered="false"
attribute. I want that the f:event listener should be triggered only when the block is rendered not otherwise.
My code as follows :
<h:panelGroup rendered="false">
<f:event type="preRenderView" listener="#{listRetriever.retrieveFollowers()}"/>
<ui:repeat value="#{listRetriever.list}" var="person">
#{person}<br/>
</ui:repeat>
</h:panelGroup>
How do I otherwise implement this correctly ?
There is another event to manage component rendering preRenderComponent
:
<h:panelGroup rendered="false">
<f:event type="preRenderComponent" listener="#{listRetriever.retrieveFollowers()}"/>
<ui:repeat value="#{listRetriever.list}" var="person">
#{person}<br/>
</ui:repeat>
</h:panelGroup>
preRenderViewEvent
is processed just before the entire view is rendered.
preRenderComponentEvent
is processed during the view rendering, just before the component which includes <f:event>
is rendered.