Sou novato nesse mundo de JSF, estou aprendendo na marra pra fazer uma aplicação própria.
Enfim, estou com o seguinte problema. Tenho uma classe Usuário, relacionada com uma classe Cliente. Dentro da classe usuário, eu tenho um objeto cliente. Até aí tudo tranquilo, cadastrando beleza no banco.
Quando eu entro no sistema com e-mail e senha do usuário, queria que aparecesse “Bem-vindo NOME_DO_USUARIO”, o nome, tá na classe Cliente. Consigo carregar o usuário normal pra sessão, mas quando tento colocar no JSP #{usuario.cliente.nome} não me retorna nada.
Quando eu coloco o usuário na sessão, já verifiquei, e o atributo CLIENTE dele tá preenchido com os valores.
Uma coisa que eu fiz mas que não acho certo, foi jogar na UsuárioBean um objeto Cliente.
Daí na JSP eu chamo… USUARIOBEAN_USUARIO_EMAIL pra pegar o e-mail que tá na classe usuário…e USUARIOBEAN_CLIENTE_NOME pra pegar o nome dele.
Mas queria que pegasse pelo objeto…USUARIOBEAN_USUARIO_CLIENTE_NOME…mas não consigo.
Alguma outra sugestão? Agradeço desde já o apoio.
=)
Realmente não tinha ele como managed-bean no Faces-Config.xml…até fiquei animado pensando que pudesse ser isso, mas não deu cara.
Continua na mesma, não consegui retornar o atributo desse objeto.
Então, como eu falei eu tenho a seguinte estrutura…USUARIOBEAN_USUARIO_CLIENTE.
No escopo da sessão eu jogo o USUARIO, tanto que eu consigo logar na aplicação normalmente, tem um trecho que mostro o e-mail do cara, que é um atributo do USUARIO, até aí beleza. O problema tá sendo quando tento retornar os dados do objeto CLIENTE, que está dentro do objeto USUARIO. Daí não funciona.
Não dá erro. Simplesmente quando eu jogo #{usuarioBean.usuario.cliente.nome} não aparece nada onde deveria aparecer o nome do caboclo.
Quando eu coloco na Classe UsuarioBean um atributo do tipo CLIENTE, ele me retorna por #{usuarioBean.cliente.nome}. Mas acho que essa não seria a solução.
Estou usando Hibernate e o relacionamento de Cliente pra Usuário é de 1-pra-1…será que tem alguma coisa a ver?
Galera o post é antigo porem acho util, explicar os tipos de Scoped do JSF
O JSF tem scoped diferentes:
RequestScoped - escopo de requisição, os atributos serão utilizados somente na requisição, após processado zerá os valores dos atributos. SessionScoped - escopo de sessão, os atributos são populados e se mantem enquanto a sessão estiver ativa, exemplo pratico post de formulário, onde vc posta os dados muda de págia e quando volta os dados estão setados nos campos. ViewScoped - escopo de view, é como um sessionScoped , porem o estado é salvo e mantido somente enquanto você estiver na view, após a mudança de página(view) você perde os dados…
ApplicationScoped - Esse nunca usei :), vive pela aplicação toda.
para utilizar
@ManagedBean(name="nomeQueAcessoNaView")
@ViewScoped
class minhaClasse{
}