是否可以禁用f:event type =" preRenderView"回复听众?

时间:2011-12-14 14:24:31

标签: jsf jsf-2 postback

在进行回发时是否可以“禁用”触发此操作?

<f:metadata>
    <f:event listener="#{defaultNewQuestionHandler.init}" type="preRenderView" />
</f:metadata>

1 个答案:

答案 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

另见: