Paginación de resultados

Tengo un problema con la paginación de resultados que me devuelve un servlet.
El servlet envía un bean a un jsp.
Recibo los beans con la expresión:
<jsp:useBean id ..... />
Aquí muestro solo parte del resultado del Bean recibido.
La parte restante quiero paginarla reenviando el bean a la misma página jsp + el parámetro que controle la página en la que estoy actualmente.
¿Cómo puedo hacerlo para reenviarle el bean a la página jsp? ¿Para incluirlo en los parámetros a enviarle?

1 respuesta

Respuesta
1
Te cuento, en primer lugar te doy una dirección donde hay un manual de JSP dedicado a la paginación y en un segundo punto un ejemplo concreto que tengo hecho yo.
Solución 1:
http://www.javahispano.org/tutorials.type.action?type=j2ee
// Hay un manual de "PAGINACION EN JSP" que te podras descargar
***************************************
Solución 2:
1.- Este ejemplo es un ejemplo que implemente, le podemos dividir en
* Paso 1.- Una referencia a una .jsp que será la que pagine (pages.jsp) y la inicializacion de las variables necesarias (TE FALTARIA).
Paso 2.- El bucle indicándole desde que registro empieza hasta el numero de registros a mostrar. (Esta es la parte que creo que tienes hecha)
Paso 3.- La propia paginación en caso de que se quieran mostar más registros, es decir << 1-2-3-4-5->> y que según pinchamos a cada uno de ellos nos saque los registros que correspondan. (La que te falta, es la que reenvía a la misma página).
Para el PAso 1.-
// Paso 1
<%@ include file="pages.jsp" %>
/* Donde se encuentra la paginación como tal, su código esta al final. Ademas defines las variables que utilizaras*/
<bean:size id="size" name="participantList"/> // esto es para struts, en tu caso debes sabes el total de registros que traes en tu recordset
<% // Variables necesarias para la paginacion
String strRegInicio = request.getParameter("POS_INICIO"); // recoges la posicion desde la cual empieza
int iRegInicio = (strRegInicio!=null) ? Integer.parseInt(strRegInicio) : 0; // si te viene null empizas en la cero sino desde el valor que recogistes
int iNumRegsPagina=Integer.parseInt(common.Constants.REGISTERS_BY_PAGE8); // cuantos registros quieres que se muestren por pagina.
int iNumRegsTotal = Integer.parseInt(size.toString()); // saber el numero de registros totales, debes haberlo calculado antes.
int iRegFinal = (iRegInicio + iNumRegsPagina < iNumRegsTotal)? iRegInicio + iNumRegsPagina : iNumRegsTotal ;
String strURLPaginar = common.Constants.PATH_JSP+"searchResult.jsp?"; // la direccion de la pagina donde esta la paginacion que sera la misma pagina.
%>
// Paso 2, lo que actualmente estas mostrando (tendras un bucle y bla bla bla).
// Paso 3.- Pones algo similar a esto
<!-- paginacion -->
<table cellpadding=0 cellspacing=0 border=0 width=776>
<%=siguientes(iRegInicio ,iNumRegsPagina, iNumRegsTotal, strURLPaginar)%>
</table>
/* la funcion siguientes es la que haces referencia el pages.jsp*/
Te paso el codigo de pages.jsp donde esta la funcion
<html>
<head>
<link rel="STYLESHEET" type="text/css" href="<%=common.Constants.PATH_CSS%>estilos.css">
</head>
<%!
private String siguientes (int inicio, int paginacion, int tamLista, String URL)
{
int numeroPaginas = tamLista/paginacion;
if (numeroPaginas>20) numeroPaginas=21;
int anterior = inicio - paginacion;
int posterior = inicio + paginacion;
int iRegFinal = (posterior<tamLista)?posterior:tamLista;
String siguientes = "";
int siguiente = 0;
String predecesorParametro;
String html="";
//String sResumen= (inicio+1) + " - " + iRegFinal ;
if (URL.indexOf("?") == -1)
predecesorParametro = "?";
else if (URL.charAt(URL.length()-1) == '&')
predecesorParametro = "";
else
predecesorParametro = "&";
if (tamLista%paginacion != 0)
numeroPaginas++;
if (numeroPaginas > 1)
{
if (inicio != 0)
siguientes = "<td class=a11b3D5><a href=\"" + URL + predecesorParametro + "POS_INICIO=" + anterior + "\" class=a11b3D5><span class=a11b3D5> << </class&g

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas