Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Dúvida no Ex. 3 da Aula 11 - Trabalhando com Taglibs

Mesmo com o código da JSP assim:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<body>
Bem vindo ao nosso gerenciador de empresas!<br/>
    <c:if test="${not empty usuarioLogado}">
        Você está logado como ${usuarioLogado}<br/>
    </c:if>
<form action=novaEmpresa method="POST">
    Nome: <input type="text" name="nome"/>
    <input type="submit" value="Adicionar Empresa"/>
    <br/>
</form>
<form action=login method="POST">
    Email: <input type="text" name="email"/>
    Senha: <input type="password" name="senha"/>
    <input type="submit" value="Login"/>
</form>
<form action=logout method="POST">
    <input type="submit" value="Logout"/>
</form>
</body>
</html>

Quando logo o usuário no sistema aparece a seguinte mensagem:

Você esta logado como br.com.alura.gerenciador.Usuario@7e999f41

Parece que o eclipse não identificou a lib escrita lá em cima pois ele não formatou o arquivo com os highlights.

Alguma solução para ?

3 respostas

Calebe,

A mensagem sempre é chamada, independente do usuário estar logado ou não?

Não ficou muito claro, mas se você quer mostrar o nome do usuário, insira ${usuarioLogado.nome} ao invés de ${usuarioLogado}

O usuarioLogado deve ter o método getNome() para funcionar.

E só complementando a resposta do amigo em cima, Quando ele diz que o usuarioLogado precisa ter o método getNome() em JSTL (você aprenderá mais adiante), você chama um get apenas pelo nome do atributo sem o get na frente ficando assim ${usuarioLogado.nome}

Abraços.

solução!

Calebe,

Outra coisa importante é lembrar que este resultado br.com.alura.gerenciador.Usuario@7e999f41 vem do método toString() da sua classe.

Se você sobrescrever este método na classe Usuario será impresso o retorno dele.

Abraço!