[Resolvido] Atribuindo Objeto ao Session em JSTL

4 respostas
A

Bons dias

Uma session feita em JSTL não recebe objeto como atributo?

Por exemplo, criei uma session do meu javabeans Usuario - que possui metodo getNome() - assim:

<c:set var="auth" value="${beanUser}" scope="session" />

onde ‘beanUser’ é o ID do meu javabean. Então leio a session…

<c:out value="${sessionScope.auth}" />

Até aí belê! Me exibe o endereço de memória do Bean… então fui além… pedi pra exibir o nome da variavel q tem no meu bean Usuario…

<c:out value="${sessionScope.auth.nome}" />

Pronto… salci fufu! Não rodou! Olha o erro

Unable to find a value for "nome" in object of class "java.lang.String" ....

Logo, JSTL não grava session com objeto e não consigo recuperar minhas variáveis do objeto???

Somebody help me!

4 Respostas

J

Quando você fez somente

<c:out value="${sessionScope.auth}" />

O que, exatamente, apareceu na tela?

Fiz um teste igualzinho ao seu aqui, como uma classe “Profissao” que tenho e funcionou perfeitamente.

PS: Para exibir o valor não é obrigatório usar JSTL, poderia fazer ${sessionScope.auth.nome} ou até mesmo ${auth.nome} direto no JSP.

A

Quando faço

<c:out value="${sessionScope.auth}" />

me exibe o endereço do bean, assim: bean.User@151fe8a

Sei que não é obrigatório usar JSTL para exibir, mas dos dois modos não rolou.

e então? =/

J

Coloca um breakpoint e “debuga” como está vindo esse teu “auth” da sessão.

Se isso não rola, use um scriptlet pra ver se o “auth” tá vindo certinho.

Existe o método “getNome()” na classe de “auth”, não é?

A

Após o debug que fiz, verifiquei que as variáveis estavam setadas normalmente… aí rodei o programa dnovo ( SEM ALTERAR NADA!! )
e funcionou. ¬¬ Fiquei 2 horas tentando resolver isso e a explicação me vem assim… simplesmente funciona do NADA!

Valeu a atenção -_-’’

Criado 10 de fevereiro de 2010
Ultima resposta 10 de fev. de 2010
Respostas 4
Participantes 2