Я использую JSF 2.0 с GlassFish 3.0.
У меня есть следующий управляемый Bean:
@ManagedBean
@RequestScoped
public class OverviewController{
private List<Event> eventList;
@PostConstruct
public void init(){
System.out.println("=> OverviewController - init() - enter");
System.out.println("=< OverviewController - init() - exit");
}
}
Из файла overview.xhtml я вызываю различные атрибуты или методы из моего контрольного контроллера.
<ui:repeat var="event" value="#{overviewController.eventList}">
...
</ui:repeat>
Все работает отлично, но проблема в файле журнала:
INFO: Enter : RESTORE_VIEW 1
INFO: Exit : RESTORE_VIEW 1
INFO: Enter : RENDER_RESPONSE 6
INFO: => OverviewController - init() - enter
INFO: => Overview Controller - updateSelectedTab() - enter
INFO: =< Overview Controller - updateSelectedTab() - exit
INFO: =< OverviewController - init() - exit
INFO: => OverviewController - init() - enter
INFO: => Overview Controller - updateSelectedTab() - enter
INFO: =< Overview Controller - updateSelectedTab() - exit
INFO: =< OverviewController - init() - exit
INFO: Exit : RENDER_RESPONSE 6
Как вы можете видеть, метод init() вызывается дважды в одном запросе без всякой причины, что так всегда. Из того, что я знаю, любой метод, аннотированный с помощью PostConstruct, вызывается один раз каждый запрос. Я не прав?
EDIT: На странице не используется AJAX. Я проверил количество запросов с помощью firebug. Выполняются запросы дерева:
- 1.Один для javax.faces.resource(GET)
- 2.Одно для файла css (GET)
- 3.One для overview.xhtml(GET)