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

Dados para View

como base o curso de Servlet, para treinar criei uma aplicação CRUD de cadastro de cliente. Porém, ao retornar a lista de cliente para apresentar em uma página JSP, os dados não são exibidos.

Estou retornando uma Collection, porém ao exibir em minha pagina usando JSTL, o mesmo não é apresentado, aparece c.nome, onde c é a variável do foreach.

Estou usando MAVEN e adicionei a biblioteca do JSTL conforme abaixo:

        <dependency>
            <groupId>org.glassfish.web</groupId>
            <artifactId>jstl-impl</artifactId>
            <version>1.2</version>
        </dependency>

Segue abaixo classe onde retorna a lista de Cliente

public class ListaCliente implements Tarefa {

    public String executa(HttpServletRequest req, HttpServletResponse resp) throws Exception  {

        Collection<Cliente> clientes = ClienteController.retornarCliente();
        req.setAttribute("clientes", clientes);

        return "/WEB-INF/listarCliente.jsp";
    }
}

Segue abaixo pagina JSP

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<html>
<body>

Resultado da busca:

<ul>
<c:forEach items="${clientes}" var="c" >
    <li>${c.nome}</li>
</c:forEach>
</ul>
</body>
</html>
3 respostas

Talvez esteja em confilto com o atributo prefix="c" . Tente usar var="d".

Não rolou. Fica assim na pagina:

Resultado da busca:
${d.nome}
solução!

Problema resolvido. Editei meu web.xml e alterei a dependência do JSTL no MAVEN para:

<dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>

Agora funciona, porém, o Eclipse acusa o erro "Can not find the tag library descriptor for "http://java.sun.com/jsp/jstl/core"" na primeira linha da JSP abaixo:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<html>
<body>

Resultado da busca:

<ul>
<c:forEach items="${clientes}" var="d">
    <li>${d.nome}</li>
</c:forEach>
</ul>
</body>
</html>

O código funciona, retorna os dados e os mesmos são exibidos. Alguém sabe porque está acusando o erro?