Mostrando entradas con la etiqueta displaytag. Mostrar todas las entradas
Mostrando entradas con la etiqueta displaytag. Mostrar todas las entradas

lunes, 19 de marzo de 2007

Displaytag: Ordenando columna por fecha

Si tenemos una tabla de la displaytag, en la que quiero que una columna ordene por fecha es algo más complicado que lo que se suele hacer, ya que, normalmente ordena alfanuméricamente.

Solución (Ordena por dd/MM/yyyy):

1.-Agrego la fecha, e indico el decorador que usa.

< display:table name="sessionScope.miLista"
align="center"
id="elemento"
pagesize="10"
export="false"
requestURI="../../action/citizen/MiAction?method=miMetodo">


< display:column titleKey="fechaConvocatoria"
property="fecha"
sortable="true"
decorator="es.miproyecto.web.view.DateColumnDecorator"/>
< /display:table>



2.-Agrego la clase java correspondiente al decorador.

package es.princast.personalSelection.web.view;

import java.text.SimpleDateFormat;
import java.util.Date;
import org.displaytag.decorator.ColumnDecorator;
import es.princast.personalSelection.util.DateDecorator;

/**
* Decorador para formatear la fecha en la tabla de listado
*
*/
public class DateColumnDecorator implements ColumnDecorator
{

/**
* Formateador de la fecha
*/
private SimpleDateFormat dateFormat = new SimpleDateFormat( "dd/MM/yyyy" );

/**
* Transformamos la reprentacion actual de la fecha en un string
*
* @param columnValue Object, el objeto date
*
* @return String value, el objeto string
*/
public final String decorate(Object columnValue)
{
if (columnValue!=null){
Date date = (Date) columnValue;
return this.dateFormat.format(date);
}else{
return new String("");
}
}
}