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

时间:2010-03-01 18:44:20

标签: java jsf

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

我有一个注册页面,我正在创建一个新人。我有一个名为PersonBean的托管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对象调用getters / setter。

由于

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:-1)

我也有这个问题。

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

使用#{personBean.name} 但不使用#{PersonBean.name}