@PostConstruct为同一请求调用两次的方法
我正在使用JSF 2.0和GlassFish 3.0。
我有以下托管豆:
@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");
}
}
从概述中.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 注释的方法都会在每个请求中被调用一次。我错了吗?
编辑:页面上不使用 AJAX。我用firebug检查了请求的数量。有树请求:
- 1.一个用于javax.faces.resource(GET)
- 2.一个用于css文件(GET)
- 3.一个概述.xhtml(GET)