1

我试图在几个 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 的工作原理?

4

3 回答 3

2

可能您的消费者类没有设置器/获取器tb

于 2011-04-04T14:00:41.797 回答
0

您还可以查看 Flash 范围,如果您只想将值/对象从一个视图传递到另一个视图,并且不想给服务器带来会话状态的负担,则可以使用它。

示例见:http: //jugojava.blogspot.com/2011/06/jsf2-flash-scope-example.html

于 2012-07-10T15:19:09.553 回答
0

为什么不添加@SessionScoped到您的 JavaBean?请参阅我对这个SO Question的解释。其次,您不这样做#{tb.getName},而是使用 EL 表达式#{tb.name}

于 2011-04-04T14:04:16.273 回答