JSF Iniciante - Definindo um managed bean via código em tempo de execução

4 respostas
kicolobo

Olá,
estou iniciando meu aprendizado de Java Server Faces (saindo do Struts) e estou com a seguinte dúvida.
Em minha aplicação, gostaria de definir um managed bean responsável por armazenar os dados do usuário logado (nome, login, etc) em sua sessão.
Sendo assim, criei um bean gerenciado só para login de usuários que, com base no login e senha fornecidos, redireciona o usuário para a página inicial da aplicação. Defini também um outro bean gerenciado no meu arquivo de configuração, chamado “usuario” que deveria armazenar os dados do usuário logado em caso de sucesso.

Minha pergunta basica aqui é: como definir o valor do bean “usuario” em tempo de execução via código (no caso, dentro do código do bean login)?
Encontrei informações sobre como definir uma propriedade específica de um bean gerenciado, no entanto o bean gerenciado em si não encontrei em local algum.

4 Respostas

afamorim

Eu ainda prefiro manter o ValuObject na sessão, mais amigos meu mantem o bean com scopo de sessão e fazem testes se o mesmo existe com seus valores preenchidos.

D

Cara, vc pode pegar/setar as informações via request, session, etc…

Isso, através do nome que vc definiu no faces-config.xml

managed-bean-name=teste
managed-bean-scope=request

Teste teste = (Teste)request.getAttribute(“teste”)

kicolobo

Então quando defino um bean gerenciado no arquivo de configuração do faces e defino o seu escopo como sendo de sessão, é a mesma coisa que defini-lo como

HttpServletRequest.getSession().setAttribute(“nomeBean”, bean) ?

D

Cara, não sei bem ao certo se a referencia do bean é utilizado em outros locais pelo JSF. Porém sua recuperação é aplicavel a forma convencional.

Se alguém puder tirar essa dúvida!!!

Criado 26 de dezembro de 2006
Ultima resposta 26 de dez. de 2006
Respostas 4
Participantes 3