I am using jsf 2.0 and I have two bean Navigation (Application Scope ) and Module (Request Scope). I want to use methods of Navigation bean in Module Bean. I am doing in this way In Module Bean
@ManagedProperty(value = "#{navigationBean}")
private NavigationBean navigationBean;
But when I am trying to get navigationBean.SomeMethod
it is not working as navigation bean is null . How to do this?
The both beans needs to be a fullworthy @ManagedBean
. The acceptor should have a public setter method for the injected bean. The injected bean is only available in @PostConstruct
and beyond (i.e. in all normal event methods, but thus not in the constructor of the acceptor).
So, this ought to work:
@ManagedBean
@ApplicationScoped
public class Navigation {
// ...
}
@ManagedBean
@RequestScoped
public class Module {
@ManagedProperty(value="#{navigation}")
private Navigation navigation;
@PostConstruct
public void init() {
navigation.doSomething();
}
public void setNavigation(Navigation navigation) {
this.navigation = navigation;
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With