使用ManagedProperty时出现问题

时间:2011-04-04 13:57:50

标签: java java-ee jsf-2 managed-bean

我正在尝试在多个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的工作原理?

3 个答案:

答案 0 :(得分:2)

可能您的消费者类没有tb

的setter / getters

答案 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