Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Erro na Aula01 questão 06 - Usando a EL

Na última questão da aula 01, é passado este código e pede para informar o que ele retorna.

Código:Meu nome é ${nome} e tenho ${idade} anos.

Ele devolve isso: Meu nome é e tenho anos.

Deveria devolver isso: Meu nome é Mauricio e tenho (valor do parametro idade) anos.

Usei neste exercício apenas lista.jsp, restante do projéto está igual como o fornecido para download ao inicio do curso

lista.jsp:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<head>
<script type="text/javascript" src="<c:url value="/js/jquery.js"/>"></script>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
    <script type="text/javascript">
        function removeProduto(id){
            $("#mensagem").load('<c:url value="/produto/remove"/>' + '?produto.id=' + id);
            $("#produto" + id).remove();
        }
    </script>
    <!-- TENTEI AQUI MAS NÃO FUNCIONOU -->
    Meu nome é ${nome} e tenho ${idade} anos.

    <h1>Produtos</h1>
    <div id="mensagem"></div>
    <table width="100%">
        <tr>
            <td width="20%">Nome</td>
            <td>Preco</td>
            <td>Descricao</td>
            <td>Data de Inicio da Venda</td>
            <td width="20%">Remover?</td>
        </tr>


        <c:forEach var = "p" items = "${produtoList}" varStatus="st">
            <tr id="produto${p.id}">
                <td>${p.nome}</td>
                <td>${p.preco}</td>
                <td>${p.descricao}</td>
                <td>${p.dataInicioVenda.time}</td>
                <td>${st.count}</td>
                <td><a href="#" onclick="return removeProduto(${p.id})">Remover</a></td>
            </tr>
        </c:forEach>

    </table>
    <a href="/produtos/produto/formulario">Adicionar um produto</a>
</body>
</html>
1 resposta
solução!

Boa tarde Cristian, a EL lê sempre um objeto {pessoa} por exemplo imprimindo seu toString() ou alguma propriedade desse objeto que possui um método getter... Então sua servlet deveria passar um objeto pessoa, por exemplo:

request.setAttribute("p",pessoa);

Assim na jsp você consegue pegar as propriedades de pessoa:

${p.nome} 
${p.idade}

Espero ter ajudado