Можно ли отключить прослушиватель f:event type="preRenderView" при обратной передаче?
Можно ли "отключить" запуск этого действия при выполнении обратной передачи?
<f:metadata>
<f:event listener="#{defaultNewQuestionHandler.init}" type="preRenderView" />
</f:metadata>
1 ответ
Решение
Это невозможно с <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 уже доступны.