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".
jueves, 30 de junio de 2011
Suscribirse a:
Entradas (Atom)