【问题标题】:How do I access properties from a custom class within a custom class in JSF?如何在 JSF 的自定义类中访问自定义类的属性?
【发布时间】:2010-03-01 18:44:20
【问题描述】:

我有一个类 Person 和一个类 Name。 Name 包含两个字符串 firstName 和 lastName。 Person 包含一个 Name 对象以及一些附加信息。如何使用 JSF EL 访问 person 中的 firstName 和 lastName 属性。我正在使用带有注释的 JSF 2.0。

我有一个注册页面,我正在其中创建一个新人员。我有一个名为 PersonBean 的托管 bean,其中包含一个 Person 实例。我正在尝试使用以下标签在我的 xhtml 页面中设置第一个:#{personBean.person.name.firstName}。这给了我一个空错误。

具体代码:

确切的错误信息: "value="#{personBean.user.name.firstName}": Target Unreachable, 'null' returned null".

我相信这个错误源于我试图在 Person 对象尚未实例化时从 Name 对象调用 getter/setter。

谢谢

【问题讨论】:

    标签: java jsf


    【解决方案1】:

    我认为您已经给出了自己的答案:“Person 对象尚未实例化”JSF 不会为您创建对象,除非它们是托管 bean。因此,您应该在访问名称之前实例化 Person 对象。您可以在实例化 bean 时或在导致组件显示的用户操作期间执行此操作。

    您可能不想让Person 对象成为托管bean,但您可以这样做,然后将其注入personBeanhttp://balusc.blogspot.com/2006/06/communication-in-jsf.html#InjectingManagedBeansInEachOther

    【讨论】:

    • 谢谢!我没有意识到 JSF 不会实例化我的对象,除非它们被管理。我只是在构造函数中添加了一个初始化。我现在觉得很傻!
    【解决方案2】:

    我也有这个问题。

    您的 managed-bean-name 应该是小写的(将您的 faces-config.xml 配置为小写并在您的页面中使用它)。

    使用 #{personBean.name} 而不是 #{PersonBean.name}

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-04
      • 1970-01-01
      • 1970-01-01
      • 2018-03-27
      • 2018-09-10
      • 1970-01-01
      • 2018-04-29
      • 1970-01-01
      相关资源
      最近更新 更多