gpt4 book ai didi

jsf - 资源注入(inject)问题 JSF 2.2

转载 作者:行者123 更新时间:2023-12-04 22:31:23 26 4
gpt4 key购买 nike

我尝试了很长时间来实现资源注入(inject),但一直没有成功。

我使用JSF 2.2JDK 1.7。我的ide是eclipse luna

我有一个名为 UserBean 的 session 作用域 bean 和一个名为 SettingsBean 的 View 作用域 bean。

我在 faces-config.xml 中将 UserBean 设置为 session scoped 并将 SettingsBean 设置为 view scoped 并使用它们的 bean 名称“ settingsBean”和“userBean

public class SettingsBean implements Serializable {
private static final long serialVersionUID = 1L;

@Inject // I also tried @ManagedProperty but didn't work
private UserBean userBean;

@PostConstruct
public void init(){
System.out.println(userBean.getUser().getFullName());
}

public UserBean getUserBean() {
return userBean;
}

public void setUserBean(UserBean userBean) {
this.userBean = userBean;
}

}

问题是我得到的 userBean 为 null。这里有什么问题?感谢您的帮助。

最佳答案

我删除了 settingsBean 的 faces-config.xml 中的 ManagedBeanViewScoped 定义,并将它们添加到 SettingsBean.java 手动归档。

还添加了这个:

@ManagedProperty(value="#{userBean}")   
private UserBean userBean;

最后,它起作用了:

    @ManagedBean
@ViewScoped
public class SettingsBean implements Serializable{

private static final long serialVersionUID = 1L;

@ManagedProperty(value="#{userBean}")
private UserBean userBean;
//...
@PostConstruct
public void init(){
System.out.println(userBean.getUser().getFullName());
}
public UserBean getUserBean() {
return userBean;
}

public void setUserBean(UserBean userBean) {
this.userBean = userBean;
}
}

关于jsf - 资源注入(inject)问题 JSF 2.2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26687956/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com