Bom dia todos,
estou começando a aprender JSF e estou com uma dúvida simples.
Criei uma página simples com um formulário onde um dos campos é este:
<h:outputLabel value="Idade: ">
<h:inputText id="idade" value="#{pessoaBean.pessoa.idade}" />
</h:outputLabel>
pessoaBean é um Managed bean comum que possui uma referência para Pessoa.
pessoa é uma referência á classe Pessoa que eu criei, e idade é um short existente nesta classe.
Gostaria de saber se existe a possibilidade de fazer esta mesma chamada sem necessitar especificar o managedBean pessoaBean, pois reduziria bastante a quantidade a ser digitada, tendo em vista que a classe Pessoa possui muitos campos ligados ao formulário. Idealmente gostaria que ficasse assim:
<h:outputLabel value="Idade: ">
<h:inputText id="idade" value="#{pessoa.idade}" />
</h:outputLabel>
Tentei fazer pessoa ser um managed bean e adiciona-lo em pessoaBean mas serviu-me apenas para definir um valor default para idade; O codigo EL continuou o mesmo. Ai vai o trecho do meu faces-config.xml:
<managed-bean>
<managed-bean-name>pessoaBean</managed-bean-name>
<managed-bean-class>projeto.controladores.PessoaBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
<managed-property>
<property-name>pessoa</property-name>
<property-class>projeto.basicas.Pessoa</property-class>
<value>#{pessoa}</value>
</managed-property>
</managed-bean>
<managed-bean>
<managed-bean-name>pessoa</managed-bean-name>
<managed-bean-class>projeto.basicas.Pessoa</managed-bean-class>
<managed-bean-scope>none</managed-bean-scope>
<managed-property>
<property-name>nome</property-name>
<property-class>java.lang.String</property-class>
<value>João do nada</value>
</managed-property>
<managed-property>
<property-name>idade</property-name>
<property-class>java.lang.Short</property-class>
<value>20</value>
</managed-property>
</managed-bean>
Não sei se isto é possível mas não custa perguntar,
obrigado