Sto utilizzando JSF 2.0 con GlassFish 3.0.Metodo @PostConstruct chiamato due volte per la stessa richiesta
Ho il seguente Managed 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");
}
}
Dal file del overview.xhtml sto chiamando attributi o metodi diversi dal mio OverviewController.
<ui:repeat var="event" value="#{overviewController.eventList}">
...
</ui:repeat>
Tutto funziona bene, ma il problema è il file di registro:
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
Come si può vedere, il metodo init() viene chiamato due volte nella stessa richiesta per nessun motivo che cosa così mai . Da quello che so, ogni metodo annotato con PostConstruct viene chiamato una volta ogni richiesta. Ho sbagliato?
MODIFICA: Nessun AJAX è utilizzato sulla pagina. Ho controllato il numero di richieste con firebug. Ci sono richieste albero fatto:
- 1.One per il javax.faces.resource (GET)
- 2.One collega per il file css (GET)
- 3.one per una panoramica .xhtml (GET)
Sei dire ClassFish o GlassFish? – Kushan
@Kushan GlassFish – Ionut
Stai eseguendo chiamate Ajax? Usa FireBug o simili per scoprire quante richieste il browser sta effettivamente facendo. – MrKiane