我正在尝试在多个SessionScoped bean之间共享一个对象。我收到错误但我真的不知道为什么。
@ManagedProperty(value="#{tb}")
private testBean tb;
我认为这是正确的语法,但是像tb.getName
之类的调用会导致异常。
@ManagedBean(name = "tb")
public class testBean
{
private String name = "sumthing";
public void setName(String name)
{
this.name = name;
}
public String getName()
{
return this.name;
}
}
我是否完全误解了ManagedProperty的工作原理?
答案 0 :(得分:2)
可能您的消费者类没有tb
答案 1 :(得分:0)
为什么不将@SessionScoped
添加到JavaBean?请参阅我对此SO Question的解释。
其次,你没有#{tb.getName}
,而是使用EL表达式#{tb.name}
代替。
答案 2 :(得分:0)
您还可以查看Flash范围,如果您只想将值/对象从一个视图传递到另一个视图,并且您不希望给服务器增加会话状态,则可以使用此范围。
有关示例,请参阅:http://jugojava.blogspot.com/2011/06/jsf2-flash-scope-example.html