GlassFish3.0でJSF2.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ファイルから、OverviewControllerからさまざまな属性またはメソッドを呼び出しています。
<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()メソッドは、理由もなく同じリクエストで2回呼び出されます。私の知る限り、PostConstructで注釈が付けられたメソッドは、リクエストごとに1回呼び出されます。私が間違っている?
編集: ページでAJAXは使用されていません。ファイアバグでリクエスト数を確認しました。行われたツリーリクエストがあります:
- 1.javax.faces.resource (GET)用に1つ
- 2.cssファイル用に1つ(GET)
- 3.overview.xhtml用の1つ(GET)