Ajuda com displaytag formatar data

Pessoal alguem trabalha com o http://www.displaytag.org/example-decorator.jsp como faço para formtar data usando ele ?

Olá tenta algo do tipo

<display:column property="seuCampoTipoData" format="{0,date,dd/MM/yyyy}" />

Estava com um problema parecido com o do tucho. No meu caso mesmo colocando o comando:

	<jsp:useBean id="dao" class="br.com.caelum.agenda.dao.ContatoDAO"/>
	<display:table name="${dao.lista}" class="its">
		<display:column property="nome"/>
		<display:column property="email"/>
		<display:column property="endereco" />
		<display:column property="dataNascimento" format="{0,date,dd-MM-yyyy}" sortable="true"/>
	</display:table>

A saída da data no HMTL vem desse jeito:

java.util.GregorianCalendar[time=1331780400000,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="America/Sao_Paulo",offset=-10800000,dstSavings=3600000,useDaylight=true,transitions=129,lastRule=java.util.SimpleTimeZone[id=America/Sao_Paulo,offset=-10800000,dstSavings=3600000,useDaylight=true,startYear=0,startMode=3,startMonth=9,startDay=15,startDayOfWeek=1,startTime=0,startTimeMode=0,endMode=3,endMonth=1,endDay=15,endDayOfWeek=1,endTime=0,endTimeMode=0]],firstDayOfWeek=2,minimalDaysInFirstWeek=1,ERA=1,YEAR=2012,MONTH=2,WEEK_OF_YEAR=12,WEEK_OF_MONTH=3,DAY_OF_MONTH=15,DAY_OF_YEAR=75,DAY_OF_WEEK=5,DAY_OF_WEEK_IN_MONTH=3,AM_PM=0,HOUR=0,HOUR_OF_DAY=0,MINUTE=0,SECOND=0,MILLISECOND=0,ZONE_OFFSET=-10800000,DST_OFFSET=0]

Minhas diretivas estão assim:

<%@ taglib uri="http://displaytag.sf.net" prefix="display" %>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

Alguém sabe se devo adicionar alguma outra diretiva para funcionar?

Minha formatação da data melhorou um pouco, mas ainda não consegui no formato ‘dd/MM/yyyy’.
Eis o meu Bean Contato, com o atributo DataNascimento que é do tipo Calendar …

public class Contato {
	private Long id;
	private String nome;
	private String email;
	private String endereco;
	private Calendar dataNascimento;
        // Getters e Setters
}

Alterei o meu JSP desde o post anterior:

<%@ 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" %>

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

<!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=UTF-8">
	<title>Exemplo com Display-Tag</title>
	<link type="text/css" href="css/style.css" rel="stylesheet" />
</head>
<body>
	<c:import url="cabecalho.jsp"/>
	
	<!-- cria o DAO -->
	<jsp:useBean id="dao" class="br.com.caelum.agenda.dao.ContatoDAO"/>
	
	<display:table name="${dao.lista}" class="its" decorator="br.com.caelum.agenda.util.DateNumberFormatDecorator">
		<display:column property="nome"/>
		<display:column property="email"/>
		<display:column title="Endereço" property="endereco" />
		<display:column title="Nascimento" property="dataNascimento.time" />
	</display:table>
	<br>
	
	<c:import url="rodape.jsp"/>
</body>
</html>

Também criei o decorator para formatar o campo data…

public class DateNumberFormatDecorator extends TableDecorator {

	/*
	 * Retorna a data como uma String no formato dd/MM/yyyy
	 * 
	 * @retorna String
	 */

	public String getDate() {
		System.out.println(new SimpleDateFormat("dd/MM/yyyy")
				.format(((Contato) this.getCurrentRowObject())
						.getDataNascimento().getTime()));
		return new SimpleDateFormat("dd/MM/yyyy").format(((Contato) this
				.getCurrentRowObject()).getDataNascimento().getTime());
	}
}

Obs.: A classe de ContatoDAO já está criada com o método lista conforme abaixo:

	public List<Contato> getLista() {
		try {
			List<Contato> contatos = new ArrayList<Contato>();
			PreparedStatement stmt = this.connection
					.prepareStatement("select * from contatos");

			ResultSet rs = stmt.executeQuery();

			while (rs.next()) {
				Contato contato = new Contato();
				// popula o objeto contato
				contato.setId(rs.getLong("id"));
				contato.setNome(rs.getString("nome"));
				contato.setEmail(rs.getString("email"));
				contato.setEndereco(rs.getString("endereco"));

				// popula a data de nascimento do contato, fazendo a conversao
				Calendar data = Calendar.getInstance();
				data.setTime(rs.getDate("dataNascimento"));
				contato.setDataNascimento(data);

				// adiciona o contato na lista
				contatos.add(contato);
			}

			rs.close();
			stmt.close();

			return contatos;
		} catch (SQLException e) {
			throw new RuntimeException(e);
		}
	}

No final das contas o resultado da formatação do campo Data de Nascimento na tabela é esse:

	Thu Mar 15 00:00:00 BRT 2012

Será que está faltando alguma coisa no meu Decorator?
Por que a data não fica no formato ‘dd/MM/yyyy’?
Será que o DisplayTag tem alguma limitação para formatar uma data de um Calendar?
Alguém tem alguma sugestão?

Tenta usar o format da column

<disp:column property="getDataNascimento.time" title="Data" format="{0, date, dd/MM/yyyy }" />
2 curtidas

Tambem estava com esse problemas mas agora a data esta certinha.

olha como estava a coluna da data antes: <display:column property="dataFinalizacao" title="Data de finalização" sortable = "true"/>

Depois eu fiz essa mudança

<display:column title="Data de Finalização"  sortable = "true">
        <fmt:formatDate value="${tarefa.dataFinalizacao.time}"pattern="dd/MM/yyyy" />
</display:column> 

lembre-se de importar a seguinte taglib:

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

O codigo todo da tabela:

<display:table name="tarefa" id="tarefa" export="false" sort="list" pagesize="10">  
        		<display:column property="id" title="ID" />  
        		<display:column property="descricao" title="Descrição" sortable = "true"/>         		
        		<display:column title="Data de Finalização"  sortable = "true">
        			<fmt:formatDate value="${tarefa.dataFinalizacao.time}"pattern="dd/MM/yyyy" />
        		</display:column> 
            	<display:column title="Finalizado?" sortable="true" class="tarefa_${tarefa.id}">              
            		<c:if test="${tarefa.finalizado eq false}"> 
                		<a href="#" onclick="finalizaAgora(${tarefa.id})"><img src="resources/images/negativo.PNG" /> </a>  
            		</c:if>  
            		<c:if test="${tarefa.finalizado eq true}">
                		<img src="resources/images/positivo.PNG" />   
            		</c:if>  
        		</display:column>              
            	<display:column title="Editar" >   
             		<form action="mostraTarefa" method="POST">  
                		<input type="hidden" name="id" value="${tarefa.id}"/>  
                    	<input type="submit" value="Editar" />  
                	</form>    
            	</display:column>
            
             	<display:column title="Excluir" >   
             		<form action=removeTarefa method="POST">  
                		<input type="hidden" name="id" value="${tarefa.id}"/>  
                    	<input type="submit" value="Excluir" />  
                	</form>    
            	</display:column>    
</display:table>