Create a sample to taste it.
Firstly create a backing bean.
@Model
public class PostRenderViewBean {
@Inject
Logger LOG;
public void init(PreRenderViewEvent e) {
LOG.log(Level.INFO, "fire PreRenderViewEvent:" + e);
}
public void execute() {
LOG.log(Level.INFO, "execute viewAction");
}
public void initialized(PostRenderViewEvent e) {
LOG.log(Level.INFO, "fire PostRenderViewEvent:" + e);
}
}
<f:metadata>
<f:event type="preRenderView" listener="#{postRenderViewBean.init}" />
<f:viewAction action="#{postRenderViewBean.execute}" />
<f:event type="postRenderView" listener="#{postRenderViewBean.initialized}"/>
</f:metadata>
You will see the info in the IDE console.
Info: before phase:RESTORE_VIEW 1
Info: after phase:RESTORE_VIEW 1
Info: invoking custom ExceptionHandlder...
Info: before phase:APPLY_REQUEST_VALUES 2
Info: after phase:APPLY_REQUEST_VALUES 2
Info: invoking custom ExceptionHandlder...
Info: before phase:PROCESS_VALIDATIONS 3
Info: after phase:PROCESS_VALIDATIONS 3
Info: invoking custom ExceptionHandlder...
Info: before phase:UPDATE_MODEL_VALUES 4
Info: after phase:UPDATE_MODEL_VALUES 4
Info: invoking custom ExceptionHandlder...
Info: before phase:INVOKE_APPLICATION 5
Info: execute viewAction
Info: after phase:INVOKE_APPLICATION 5
Info: invoking custom ExceptionHandlder...
Info: before phase:RENDER_RESPONSE 6
Info: fire PreRenderViewEvent:javax.faces.event.PreRenderViewEvent[source=javax.faces.component.UIViewRoot@248724dd]
Info: fire PostRenderViewEvent:javax.faces.event.PostRenderViewEvent[source=javax.faces.component.UIViewRoot@248724dd]
Info: after phase:RENDER_RESPONSE 6
Info: invoking custom ExceptionHandlder...