在进行回发时是否可以“禁用”触发此操作?
<f:metadata>
<f:event listener="#{defaultNewQuestionHandler.init}" type="preRenderView" />
</f:metadata>
答案 0 :(得分:27)
<f:event>
无法做到这一点。您需要在侦听器方法中手动检查FacesContext#isPostback()
。
public void init() {
if (!FacesContext.getCurrentInstance().isPostback()) {
// ...
}
}
在即将推出的JSF 2.2 <f:viewAction>
标记中,该标记应该替换此<f:event type="preRenderView">
“变通方法”,但是可以使用onPostback
属性:
<f:viewAction action="#{defaultNewQuestionHandler.init}" onPostback="false" />
JSF 2.2的快照版本已经available。