【问题标题】:Trouble using ManagedProperty使用 ManagedProperty 遇到问题
【发布时间】:2011-07-29 05:08:18
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      为什么不将@SessionScoped 添加到您的JavaBean 中?请参阅我对此SO Question 的解释。 其次,不要使用#{tb.getName},而是使用EL Expression #{tb.name}

      【讨论】:

      • 在 faces-config 中声明为 SessoNScoped。虽然通过一些测试我认为这可能是库的问题,因为我注意到 tb 为空。
      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 2012-03-29
        • 2013-05-19
        • 2023-03-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-21
        • 2021-11-08
        • 2014-01-08
        相关资源
        最近更新 更多