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:
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…