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

jueves, 30 de junio de 2011

Parametros de ordenamiento en listas Parcialmente ordenadas en displayTag

 A veces necitamos que no sea displaytag lo que ordene y pagine la colección (para no tener toda la colección en memoria) y manejar el ordenamiento nosotros mismo.

 displaytag ofrece un mecanismo por el cual uno desde el action de struts puede obtener datos necesarios para la paginación y ordenamiento como son el nombre de la columna y el numero de pagina.

  Tales parámetros se pueden obtener del siguiente modo

para saber el nombre (nombre definido en la propiedad sortName="" de la tabla de displaytag)
request.getParameter(paramEncoder.encodeParameterName(TableTagParameters.PARAMETER_SORT))   

y este es para saber el orden 1 o 2 (ASC o DESC)
request.getParameter(paramEncoder.encodeParameterName(TableTagParameters.PARAMETER_ORDER))

Es importante tener en cuenta que cuando se invoca por primera, no va a tener un valor, va a ser vacío,
para evitar eso se puede asignar un valor por defecto utilizando el método defaultIfEmpty de la clase org.apache.commons.lang.StringUtils

StringUtils.defaultIfEmpty(request.getParameter(paramEncoder.encodeParameterName(TableTagParameters.PARAMETER_ORDER)),"1");
 y en la primera vez que va a estar vacío se le asignara el "1".