我正在创建两个bean,将第一个bean注入第二个bean。 第二个bean为第一个bean设置set方法。 也是从JSF调用的第二个bean bean。
我需要容器创建一个实例,以便从第二个bean和JSF页面进行访问。
结果页面不包含第一个bean的数据,该数据是从第二个bean设置的。
我认为容器创建了两个实例。但为什么呢?
感谢。
代码:
###第一豆@ManagedBean(name="a")
@Stateful
class A{
private String thing;
public String getThing();
public String setThing();
}
###第二豆
@ManagedBean(name="b")
@SessionScoped
@Stateful
class B{
@Inject
private A a;
a.setThing();
}
### JSF页面
<p:outputLabel value="#{a.thing}" />
答案 0 :(得分:2)
您的@ManagedBeans
(@MangagedBean,没有s),@SessionScoped
和@Stateful
定位错误。他们应该在课堂之上。如果你开始使用@Inject,我可以建议转移到基于CDI的注释@Named及其相应的@SessionScoped(在不同的pacakge中)。有关正确的注释包,请参阅here