Displaytag Column + JSTL

Olá!

Estou tentando criar uma tabelinha no exercicio 8.6 na apostila do curso FJ-21 : Java para Desenvolvimento Web.

Já importei os jars no meu eclipse e montei o código, mas nao vai, pois dá erro.

image

Meu código abaixo.

<%@page import="br.com.caelum.agenda.dao.ContatoDao"%>
<%@page import="java.awt.List"%>
<%@page import="java.util.Date"%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@page import="java.text.SimpleDateFormat" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<%@ taglib uri="http://displaytag.sf.net" prefix="display" %>


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
	<head>
	<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
	<title>Lista Contatos</title>
	</head>
<body>
	
	<c:import url="cabecalho.jsp"></c:import>
	
	<!--  cria o DAO -->
	<jsp:useBean id="dao" class="br.com.caelum.agenda.dao.ContatoDao"/>
	
	<%
	List<Contato> contatos = dao.getLista();
		request.setAttribute("contato", contatos); 
	%>
	
	<display:column title="ID">${contato.id }</display:column>
	<display:column title="Nome">${contato.nome }</display:column>
	<display:column title="Email">${contato.email }</display:column>
	<display:column title="Endereco">${contato.endereco }</display:column>
	<display:column title="Data de Nascimento">${contato.dataNascimento.time }</display:column>
	
	<c:import url="rodape.jsp"/>
	
</body>
</html>

Espero poder me dar uma dica. :slight_smile:

Alguem???

Boa tarde,

Vc escreveu seu código incompleto nas tags do componente. Veja abaixo a documentação dele e compare com o que vc fez vs como deve ser:
http://www.displaytag.org/10/tut_basic.html

Obrigado pelo retorno, mas mesmo assim nao consegui :frowning:

> <%@page import="br.com.caelum.agenda.modelo.Contato"%>
> <%@page import="br.com.caelum.agenda.dao.ContatoDao"%>
> <%@page import="java.awt.List"%>
> <%@page import="java.util.Date"%>
> <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
>     pageEncoding="ISO-8859-1"%>
> <%@page import="java.text.SimpleDateFormat" %>
> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
> <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
> <%@ taglib uri="http://displaytag.sf.net" prefix="display" %>
> 
> 
> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
> <html>
> 	<head>
> 	<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
> 	<title>Lista Contatos</title>
> 	</head>
> <body>
> 	
> 	<c:import url="cabecalho.jsp"></c:import>
> 	
> 	<!--  cria o DAO -->
> 	<jsp:useBean id="dao" class="br.com.caelum.agenda.dao.ContatoDao"/>
> 	
> 	<% request.setAttribute("contato", new Contato()); %>
> 	
> 	<display:column property="${contato.id }" title="ID"></display:column>
> 	<display:column property="${contato.nome }" title="Nome"></display:column>
> 	<display:column property="${contato.email }" title="Email"></display:column>
> 	<display:column property="${contato.endereco }" title="Endereco"></display:column>
> 	<display:column property="${contato.dataNascimento.time }" title="Data de Nascimento"></display:column>
> 	
> 	<c:import url="rodape.jsp"/>
> 	
> </body>
> </html>

Bom dia joaowick,

Pelo que vi, vc não comparou o que fez com os exemplos na documentação.
Aí, vc realmente, não vai conseguir perceber o que está diferente entre o que funciona e o que não.

Mas, vou tentar mais uma vez.
Esse outro link tem mais detalhes ainda, pois nele contém demonstrações diversas de como fazer:
http://demo.displaytag.org/displaytag-examples-1.1/

E ainda vai um plus. O que está diferente no que fiz abaixo no seu código e no que vc fez?

<% request.setAttribute("contato", new Contato()); %>
<display:table name="contato">
	<display:column property="${contato.id }" title="ID"></display:column>
	<display:column property="${contato.nome }" title="Nome"></display:column>
	<display:column property="${contato.email }" title="Email"></display:column>
	<display:column property="${contato.endereco }" title="Endereco"></display:column>
	<display:column property="${contato.dataNascimento.time }" title="Data de Nascimento"></display:column>
</display:table>

Vá com calma que vc chega lá.