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!
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.
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? =/
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 é?
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 -_-’’