我试图通过这篇的帖子(链接在此)在另一个托管bean中获取托管bean的实例。
使用findBean
方法很好,我检索到了我的bean,但是使用ManagedProperty
我无法获取到我的bean。
要注入的bean如下:
@ManagedBean(name="locale")
@SessionScoped
public class LocaleBean {
private String locale;
public String getLocale() {
return locale;
}
public void setLocale(String locale) {
FacesContext.getCurrentInstance().getViewRoot().setLocale(new Locale(locale));
this.locale = locale;
}
}
因此,当我在我的登录
bean 中调用 LocaleBean locale = findBean("locale");
时它可以工作,但是:
@ManagedProperty("#{locale}") // OR localeBean, LocaleBean...
private LocaleBean locale;
无法运行...
com.sun.faces.mgbean.ManagedBeanCreationException: 无法创建托管 bean “login”。检测到以下问题: - 托管 bean “login”的属性“locale”不存在。
为什么?
locale
bean在login
bean之前可能还没有被实例化吗? - Olivier J.