@ManagedBean (name = "foo") no está disponible por su nombre en EL # {foo}
Estoy tratando de usar un bean de ámbito de aplicación en JSF2, pero por alguna razón siempre esnull
en mi solicitud de frijol con alcance. Aquí está el código que estoy usando:
El bean de ámbito de aplicación:
@ManagedBean(eager=true, name="applicationTracking")
@ApplicationScoped
public class ApplicationTracking implements Serializable {
private static final long serialVersionUID = 4536466449079922778L;
public ApplicationTracking() {
System.out.println("ApplicationTracking constructed");
}
}
El bean de ámbito de solicitud:
@ManagedBean
@RequestScoped
public class SearchResults implements Serializable {
private static final long serialVersionUID = 4331629908101406406L;
@ManagedProperty("#{applicationTracking}")
private ApplicationTracking appTracking;
public ApplicationTracking getAppTracking() {
return appTracking;
}
public void setAppTracking(ApplicationTracking appTrack) {
this.appTracking = appTrack;
}
@PostConstruct
public void init() {
System.out.println("SearchResults.init CALLED, appTracking = " + appTracking);
}
}
De acuerdo con todo lo que veo en los foros, esto debería funcionar sin ninguna otra configuración. Cuando inicio el servidor (Tomcat) veo elApplicationTracking
constructor yinit
métodos para ser llamado.
Pero en miSearchResults
componente de la impresión en elPostConstruct
siempre es nulo:
SearchResults.init CALLED, appTracking = null
¿Qué me estoy perdiendo?