代码之家  ›  专栏  ›  技术社区  ›  kgrad

如何在jsf中从自定义类中的自定义类访问属性?

  •  0
  • kgrad  · 技术社区  · 15 年前

    我有一个班上的人和一个班名。name包含两个字符串firstname和lastname。person包含一个name对象以及一些附加信息。如何使用jsf el访问person中的firstname和lastname属性。我正在使用带有注释的jsf 2.0。

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

    确切的代码:

    <h:inputtext label=“first name”id=“fname”value=“{personbean.user.name.firstname}” required=“true”/>

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

    我相信这个错误源于这样一个事实:当person对象还没有实例化时,我正试图从name对象调用getter/setter。

    谢谢

    2 回复  |  直到 15 年前
        1
  •  2
  •   Colin Gislason    15 年前

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

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

        2
  •  -1
  •   Leandro    15 年前

    我也有这个问题。

    托管bean名称应该小写(将faces-config.xml配置为小写并在页面中使用)。

    使用 #{personbean.name} 但不是 #{personbean.name}