+2  A: 

I think you have given your own answer: "the Person object is not yet instantiated" JSF will not create objects for you unless they are managed beans. So you should instantiate the Person object before you access the name. You could do it when the bean is instantiated or during the user action that causes the component to be shown.

You probably do not want to make the Person object a managed bean, but you could do that and then have it injected into the personBean: http://balusc.blogspot.com/2006/06/communication-in-jsf.html#InjectingManagedBeansInEachOther

Colin Gislason
Thanks! I didn't realize that JSF wouldn't instantiate my objects unless they were managed. I simply added an initialization in the constructor. I feel silly now!
kgrad
A: 

I also had this problem.

Your managed-bean-name should be lowercase (configure your faces-config.xml to be lowercase and use it in your page).

Use #{personBean.name} but not #{PersonBean.name}

Leandro