JSP (Java Server Page) - codigo para hacer la paginacion con JSP

 
Vista:

codigo para hacer la paginacion con JSP

Publicado por Antonia Luna (3 intervenciones) el 26/06/2007 18:28:01
Les paso el codigo para realizar la paginacion con JSP, no es necesario usar javabeans o servlets.

Espero que les pueda servir, trate de hacerlo lo mas sencillo posible.

<%@ page contentType="text/html; charset=iso-8859-1" language="java" import="java.sql.*, java.util.*,java.lang.*,java.util.*, java.text.*,java.io.*" errorPage="" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Documento sin título</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="javascript" type="text/javascript">
//CUANDO LE DA CLIC EN SIGUIENTE SE MANDA A LLAMAR ESTA FUNCION
function otraVez(){
document.form1.submit();
}
</script>
<style type="text/css">
BODY {
scrollbar-face-color: #ADD6FE;
scrollbar-highlight-color: #FFFFFF;
scrollbar-shadow-color: #EDEDED;
scrollbar-3dlight-color: #EEEAEE;
scrollbar-arrow-color: #446699;
scrollbar-track-color: #f5f5f5;
scrollbar-darkshadow-color: #98AAB1;
margin-left: 0px;
margin-top: 0px;
}
.Estilo7 {color: #990000; font-size: 13px; font-family: Arial, Helvetica, sans-serif; font-weight: bold;}
.Estilo8 {color:#FFFFFF; font-size: 13px; font-family: Arial, Helvetica, sans-serif; font-weight: bold;}
.Estilo9 {color:#000000; font-size: 12px; font-family: Arial, Helvetica, sans-serif;}
.Estilo10 {color:#0066CC; font-size: 12px; font-family: Arial, Helvetica, sans-serif; font-weight: bold;}

a:link {
text-decoration: none;
color: #FFFFFF;
}
a:visited {
text-decoration: none;
color: #FFFFFF;
}
a:hover {
text-decoration: underline;
}
a:active {
text-decoration: none;
}
</style>
</head>
<%
ResultSet rs1= null;
Statement stmt1 = null;
Connection con1 = null;

String user="";
String pw="";
String url="";
String driverSQL="";

try{
funciones_jsp f = new funciones_jsp();
int total_reg=0;

//-------------- CREACION DE ARREGLO DE LISTA --------------------------------------------------
ArrayList lista_fol = new ArrayList();

//-------------- SI ESTA EL ARREGLO VACIO LO LLENA CON LA INFORMACION SOLICITADA ----------------
//-------------- SE REALIZA LA CONSULTA DE SQL --------------------------------------------------
if (lista_fol.isEmpty()){
url = f.urlMttoSQL();
driverSQL = f.driverSQL();
user = f.usuarioSQL();
pw = f.claveSQL();
Class.forName(driverSQL);
con1 = DriverManager.getConnection(url,user,pw);
stmt1 = con1.createStatement();
rs1=stmt1.executeQuery("SELECT folio FROM t_servicios WHERE tipo='ACLARACION' ORDER BY fecha DESC");

//-------------- BORRO EL CONTENIDO DE LA LISTA -------------------------------------------------
lista_fol.clear();

//-------------- SE LLENA LA LISTA CON EL RESULTSET (rs1) ---------------------------------------
//-------------- VARIABLE total_reg CONTIENE LA CANTIDAD TOTAL DE REGISTROS ---------------------
while (rs1.next()){
lista_fol.add(new Integer (rs1.getInt("folio")));
total_reg=total_reg+1;
}//while
}//if

%>
<body>
<form name="form1" method="post" action="">
<table width="497" border="0" align="center" cellpadding="2" cellspacing="0" bordercolor="#CCCCCC">
<tr bgcolor="#3399FF" class="Estilo8">
<td width="104" bgcolor="#0066CC"><div align="center">Folio</div></td>
<td width="255" bgcolor="#0066CC"><div align="center">Mostrar</div></td>
<td width="104" bgcolor="#0066CC"><div align="center">Fecha</div></td>
</tr>
<%
//----------- OBTENGO LOS REGISTROS QUE SE HAN MOSTRADO --------------------------------------------------
//----------- LA PRIMERA VEZ QUE SE EJECUTA LA PAGINA reg_actual=0 ---------------------------------------
String reg_actual=request.getParameter("reg_actual"); if (reg_actual==null || reg_actual.equals("")) reg_actual="0";
int regActual=Integer.parseInt(reg_actual);

//----------- CANTIDAD DE REGISTROS A PAGINAR 17 (n-1)-----------------------------------------------------
int paginacion=16;

//----------- VARIABLE "HASTA" CONTROLA LA CANTIDAD DE REGISTROS QUE SE MOSTRANRAN EN PANTALLA ------------
int hasta=regActual+paginacion;
if (hasta>=(total_reg-1)){
hasta=total_reg-1;
}

int fol=0;

//----------- MUESTRA EL CONTENIDO DEL ARREGLO DE LISTA EN PANTALLA ----------------------------------------
if (!lista_fol.isEmpty()){
if (hasta<=total_reg){
int renglon=1; //---- VARIABLE PARA DEFINIR EL COLOR DEL RENGLON
for (int i=regActual; i<=hasta; i++){ //---- VACIO EL ARREGLO DE LISTA
Integer fl = ((Integer)lista_fol.get(i));
fol = fl.intValue();
if(renglon % 2 == 0){ // ---- SI ES PAR EL COLOR DEL RENGLON ES BLANCO, SI NO ES AZUL CLARO
%> <tr class="Estilo9">
<td><%=i+1%>-<%=fol%> </td>
<td> </td>
<td> </td>
</tr>
<% } else { // ---- SI ES IMPAR EL COLOR DEL RENGLON ES AZUL CLARO
%> <tr class="Estilo9">
<td bgcolor="#EFF3FB"><%=i+1%>-<%=fol%> </td>
<td bgcolor="#EFF3FB"> </td>
<td bgcolor="#EFF3FB"> </td>
</tr>
<% }
renglon=renglon+1; //---- INCREMENTO LA VARIABLE
}//for
regActual=hasta+1;//---- CANTIDAD DE REGISTROS QUE SE MUESTRAN EN CADA CICLO
}//if
}
%> <tr bgcolor="#3399FF" class="Estilo8">
<% if (regActual<=21){ //---- NO MUESTRA LA LEYENDA ANTERIOR
%> <td bgcolor="#0066CC"> </td>
<% } else { //---- MUESTRA LA LEYENDA ANTERIOR
%> <td bgcolor="#0066CC"><div align="right"><a href="javascript:history.back()" class="Estilo8">Anterior</a></div></td>
<% }
%> <td bgcolor="#0066CC"><div align="center"><%=regActual%> registros de <%=total_reg%></div></td>
<% if (total_reg!=regActual){ //---- MUESTRA LA LEYENDA SIGUIENTE Y LE DA UN SUBMIT A LA PAGINA EJECUTANDO LA FUNCION OTRAVEZ
%> <td bgcolor="#0066CC"><a href="javaScript:otraVez()" class="Estilo8">Siguiente</a> </td>
<% } else{ //---- NO MUESTRA LA LEYENDA SIGUIENTE
%> <td bgcolor="#0066CC"> </td>
<% }
%> </tr>
</table>

<!--CAMPO DE TEXTO REG_ACTUAL CONTIENE LOS REGISTROS QUE SE HAN MOSTRADO -->
<input name="reg_actual" type="text" id="reg_actual" value="<%=regActual%>">
<% } catch (Exception e) {
%> <table width="585" border="0" align="center">
<tr>
<td width="240" class="Estilo7"> </td>
<td width="241" class="Estilo7"> </td>
</tr>
<tr>
<td class="Estilo7"> </td>
<td class="Estilo7"><div align="right"><a href="javascript:history.back()"><img src="../imagenes/btnregresar.gif" width="81" height="16" border="0"></a></div></td>
</tr>
<tr>
<td class="Estilo7"> </td>
<td class="Estilo7"> </td>
</tr>
<tr>
<td colspan="2" class="Estilo7"><div align="center">Se genero un error consulte a su Administrador</div></td>
</tr>
<tr>
<td colspan="2" class="Estilo7"><div align="center">Gracias<%=e%></div></td>
</tr>
</table>
<% } finally {
if (con1!=null) {
rs1.close();
rs1=null;
stmt1.close();
stmt1=null;
con1.close();
con1=null;
}//if
}//finally
%>
</form>
</body>
</html>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

codigo para hacer la paginacion con JSP

Publicado por Andres (1 intervención) el 13/04/2011 17:49:04
Hola Antonia Luna...se nota que tu codigo de paginacion esta buenisimo, pero aun no lo hago correr un favor a que te refires con funciones_jsp ... si podrias enviarme tu paginacion y/o proyecto a mi msn ( [email protected] ) seria amable de tu parte .. muchas gracias de ante mano...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:codigo para hacer la paginacion con JSP

Publicado por Antonia (3 intervenciones) el 26/06/2007 18:41:59
Se me olvidaba, cambien la propiedad type a hidden del campo reg_actual

<input name="reg_actual" type="hidden" id="reg_actual" value="<%=regActual%>">
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:codigo para hacer la paginacion con JSP

Publicado por corri (1 intervención) el 20/07/2007 12:42:46
He adaptado el codigo anterior a una paginacion que he estoy haciendo, pero tengo un problema, cuando le doy a 'siguiente' no me recarga el formulario, se me queda igual que antes, a lo mejor es pq no hay ninguna accion en el formulario, quiero decir:
<form ... action " ">

he intentado poner en elm action que me abra la misma pagina, pero tampoco no consigo nada.

Qué puede fallar?

Muchas grácias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:codigo para hacer la paginacion con JSP

Publicado por hrllo (2 intervenciones) el 29/08/2008 18:44:52
hello
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:codigo para hacer la paginacion con JSP

Publicado por hrllo (2 intervenciones) el 29/08/2008 18:45:37
hello
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Excelente

Publicado por Chicho (1 intervención) el 11/01/2009 23:40:14
Gracias, tu implementación funciono correctamente, gracias a tu codigo he podido presentar mi proyecto en la universidad y he sacado una excelente calificacion, sigue adelante y buena suerte en tu vida
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:codigo para hacer la paginacion con JSP

Publicado por nerelaya (10 intervenciones) el 24/04/2009 11:54:49
Hola Antonia!!

Estoy haciendo la pagina web de una biblioteca como proyecto de fin de carrea. Y cuando realizo busquedas de libros quiero visualizar los datos que encuentre de 10 en 10, y todo el rato en el mismo jsp. Entonces, yo estoy intentando hacer una paginacion en un jsp, pero la cuestion es que me he dado cuenta que soleis hacer la consulta a la base de datos en el jsp y yo la realizo en servlet y guardo todo el contenido en un bean y lo saco en el jsp y separo la informacion con la funcion split. Entonces no comprendo como realizar la paginacion, si no es mucha molestia podrias indicarme como se podria hacer de forma sencilla o si se podria hacer sacando los datos en el servlet?y ponerme un ejemplo sencillo?x ejemplo, con una tabla que no cambie de colo como el ejemplo realizado por ti, es que es una parte de lo que me lia de tu ejemplo.

Es muy urgente!! Gracias de antemano.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:codigo para hacer la paginacion con JSP

Publicado por Linuchis (3 intervenciones) el 26/10/2009 00:59:04
Nerelaya: Recomiendo esto::

Cuando usas beans es más segura tu app,
Has el ArrayList con los datos de tu Bean así::
-----------------------------------------------------------------------
EN EL BEAN::::: ej. FolioBean.java
--------------------------------------------
private int folio;
private String nomFolio;
private char tipo;
private String fecha;
public FolioBean(){ //constructor inicializas variables
folio =0; nomFolio=""; (...)}
// getter & setter IMPORTANTES PARA TRAER DATOS
--------------------------------------------
EN LA CLASE DONDE HACES CONEXION::: ej: MapFolios.java
--------------------------------------------
// incializas resultset y conexion
public ArrayList listarFolios(){
ArrayList folios = new ArrayList();

rs1=stmt1.executeQuery("SELECT folio, nomFolio FROM t_servicios WHERE tipo='ACLARACION' ORDER BY fecha DESC");

while(rs1.next()){
FolioBean foliosbean=new FolioBean();
foliosbean.setFolio(rs1.getInt(1));
foliosbean.setNomFolio(rs1.getString(2));
// agregas el bean a cada posicion del arrayList
folios.add(foliosbean);
}
return folios;
}
--------------------------------------------
En el JSP:
--------------------------------------------
(.....)
<% MapFolios mapFolios = new MapFolios();
ArrayList lista_fol= mapFolios.listarFolios();
int total_reg = lista_fol.size();

String color = "";
for (int i=regActual; i<=hasta; i++){ //---- VACIO EL ARREGLO DE LISTA
FolioBean flbean = ((FolioBean)lista_fol.get(i));

//cambio color:: OJO esta dentro del for
if(i%2==0){ color="#000000";
}else{ color="#EFF3FB"; }
%>
<!-- Asigno la variable color al td...traigo datos del bean con los getter -->
<td bgcolor="<%=color%>"> <%=i+1%>-<%=flbean.getFolio()%>-<%=flbean.getNomFolio()%> </td>
<% } // fin for %>
(.....)
--------------------------------------------
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE: Ayuda! codigo para hacer la paginacion con JSP

Publicado por Linuchis (3 intervenciones) el 26/10/2009 01:08:36
Hola Antonia Luna y amigos del Foro!

Muchas gracias por tu post. Me ha servido mucho. Pero tengo una inquietud::

Tengo un JSP : "formato.jsp" que incluye a "formincl.jsp"; en "formatoincl.jsp" tengo la tabla y es donde necesito hacer la paginación, "formato.jsp" envia 2 parámetros a "formatoincl.jsp" y al ejecutarlo me lista los primeros datos tomados de un ArrayList (Igual a tu ejemplo), cuando hago clic en "siguiente" no muestra los otros datos :( , he revisado el link haciendo un get y me encuentro con que no me esta agregando los parámetros enviados de formato a formatoincl... cómo hago para agregar esos parámetros al link: "sigiente"???

Gracias!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE: Ayuda! codigo para hacer la paginacion con JSP

Publicado por Linuchis (3 intervenciones) el 26/10/2009 16:51:40
Y cuando descubrí que el agua moja... un amigo me ayudó y me sugirió que si enviaba más parámetros de un jsp a otro hiciera el request respectivo dentro del form y agregara :::

<%String parametro1= request.getParameter("parametro1");%>

<input name="parametro1" type="hidden" id="parametro1" value="<%=parametro1%>">

Y realizar asi todos los parametros que se necesiten para realizar la respectiva consulta.

Gracias!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE: Ayuda para crear un foro con JSP

Publicado por Marco (2 intervenciones) el 07/06/2010 18:43:15
Hola necesito hacer un foro con jsp y oracle que me dejo hacerlo el profe mascarita, solo se que necesito crear una tabla, pero no tengo idea de como empezar a programar en jsp
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE: Ayuda para crear un foro con JSP

Publicado por Marco (2 intervenciones) el 07/06/2010 18:44:18
Hola necesito hacer un foro con jsp y oracle que me dejo hacerlo el profe , solo se que necesito crear una tabla, pero no tengo idea de como empezar a programar en jsp
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:codigo para hacer la paginacion con JSP

Publicado por williams (1 intervención) el 09/11/2009 05:04:56
es bueno el codigo gracias por ayudarme
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:codigo para hacer la paginacion con JSP

Publicado por Tutancamon (1 intervención) el 06/01/2010 16:48:02
Muchas gracias por tu aporte con este design pattern.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:codigo para hacer la paginacion con JSP

Publicado por Jorge (1 intervención) el 17/03/2010 17:21:21
hola me podrias decir cual es la definicion de funciones_jsp????

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:codigo para hacer la paginacion con JSP

Publicado por raul (1 intervención) el 14/07/2010 00:53:14
que gran aporte sencillo y eficiente. gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

codigo para hacer la paginacion con JSP

Publicado por Neko (1 intervención) el 06/05/2013 18:19:46
de donde salio la clase funcion.jsp??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar