jsf无法将managedbean从会话范围获取到另一个managedbean
我试图通过以下方式获得会话范围managedbean:jsf无法将managedbean从会话范围获取到另一个managedbean,jsf,primefaces,Jsf,Primefaces,我试图通过以下方式获得会话范围managedbean: @ManagedBean @SessionScoped @SuppressWarnings("serial") public class LoginBean implements Serializable{ ...... } @ManagedBean @SessionScoped public class MenuBean implements Serializable{ @ManagedProperty(value="#{loginBe
@ManagedBean
@SessionScoped
@SuppressWarnings("serial")
public class LoginBean implements Serializable{
......
}
@ManagedBean
@SessionScoped
public class MenuBean implements Serializable{
@ManagedProperty(value="#{loginBean}")
private LoginBean login;
public void setLogin(LoginBean login) {
this.login = login;
}
public LoginBean getLogin() {
return login;
}
...
}
但是MenuBean loginBean总是空的,我会做错什么呢?你能帮我吗
提前谢谢
注意。资源的注入在成功构建之后立即发生,因此,您将无法在构建bean之前或期间使用注入的字段。因此,有必要对其进行评估。注入的属性可用于
@PostConstruct
方法(该方法在构造后立即执行,@PostConstruct
中的Post)
相关的
- (项目3)
javax.faces.*
包导入范围标注。然后还要确认LoginBean
实际上正在实例化(即日志中没有与初始化相关的异常等)您好,是的,我的导入看起来像这样:import javax.faces.application.FacesMessage;导入javax.faces.bean.ManagedBean;导入javax.faces.bean.ManagedProperty;导入javax.faces.bean.SessionScoped;导入javax.faces.context.ExternalContext;导入javax.faces.context.FacesContext;还要尝试在会话中获取bean,如下所示:FacesContext context=FacesContext.getCurrentInstance();LoginBean login=(LoginBean)context.getApplication().evaluateExpressionGet(context,“{LoginBean}”,LoginBean.class);如果我这样做的话,我可以用ManagedProperty获取bean,我无法提供您的帮助您在什么时候尝试访问loginBean
而得到的结果是空的?不是构造函数是吗?我正试图从MenuBean的构造函数那里获取loginBean,这是一种不好的方法吗?好的,我想我可以使用@PostConstruct rigth来完成它?非常感谢Kolossus!你救了我一天!!