Is it possible to disable f:event type="preRenderView" listener on postback?
That's not possible with <f:event>
. You need to manually check FacesContext#isPostback()
inside the listener method.
public void init() {
if (!FacesContext.getCurrentInstance().isPostback()) {
// ...
}
}
In the upcoming JSF 2.2 <f:viewAction>
tag, which is supposed to replace this <f:event type="preRenderView">
"workaround", it will however be possible with the onPostback
attribute:
<f:viewAction action="#{defaultNewQuestionHandler.init}" onPostback="false" />
Snapshot releases of JSF 2.2 are already available.
See also:
- What's new in JSF 2.2?