Можно ли отключить прослушиватель f: event type = "preRenderView" при обратной передаче? - PullRequest
13 голосов
/ 14 декабря 2011

Можно ли "отключить" запуск этого действия при выполнении обратной передачи?

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

1 Ответ

27 голосов
/ 14 декабря 2011

Это невозможно с <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 уже доступны .

Смотри также:

...