Curso de Struts 2
Paginación
En esta lección aprenderemos a implementar una paginación sencilla para listar datos, como jugadores en este caso. La paginación nos permite dividir grandes conjuntos de datos en páginas manejables, mejorando la usabilidad y el rendimiento de nuestras aplicaciones.
Concepto básico de paginación
Dividimos la información en bloques de registros. Por ejemplo:
Si cada página tiene 10 registros y quiero mostrar la página 3, la consulta debe comenzar desde el registro 30 y devolver los siguientes 10 registros.
Ventajas de la paginación
- Mejora el rendimiento al evitar cargar todos los datos en una sola solicitud.
- Ofrece una experiencia de usuario más ordenada y manejable.
- Facilita la navegación en listas largas de datos.
Código necesario
Configuración de la consulta en Hibernate
1. Establecer el registro inicial
Para definir a partir de qué registro comenzará la consulta, usamos el método:
hqlQuery.setFirstResult(registro);
registro
: Es la posición del primer registro (0-indexado). Por ejemplo, para la página 3 con 10 registros por página,registro
será 30.
2. Limitar el número de resultados
Para limitar el número máximo de registros que se devolverán, usamos:
hqlQuery.setMaxResults(10);
- En este caso, la consulta devolverá un máximo de 10 resultados.
Enlaces para la navegación
Para imprimir los enlaces a cada una de las páginas, utilizaré el siguiente código:
<s:iterator begin="1" end="numRegistros" step="10" status="i">
<a class="enlace" href="inicioPaginacion.action?reg=<s:property value="#i.index*10"/>"><s:property value="#i.count"/>
</a>
</s:iterator>
begin
yend
: Indican el rango de páginas.step
: Define el número de registros por página (en este caso, 10).status="i"
: Proporciona información del índice actual en el bucle.href
: Incluye el número de registro inicial como parámetro (registro
) para la acción.
Resumen de flujo
- Usuario selecciona una página:
Se envía el número de registro inicial como parámetro (registro
) en la URL. - Clase Action:
UsasetFirstResult
ysetMaxResults
para obtener los registros correctos. - Vista:
Muestra los datos obtenidos de la consulta y genera enlaces dinámicos para navegar.
Ejercicio
Hacer una paginación sobre el listado completo de jugadores. En dicha paginación simplemente se mostrarán los nombres de los jugadores.