Curso de Struts 2 | Paginación 1

Curso de Struts 2
Paginación

Curso de Struts 2 | Paginación 2

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 y end: 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

  1. Usuario selecciona una página:
    Se envía el número de registro inicial como parámetro (registro) en la URL.
  2. Clase Action:
    Usa setFirstResult y setMaxResults para obtener los registros correctos.
  3. 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.