Ver Mensaje Individual
  #2 (permalink)  
Antiguo 13/10/2004, 13:00
Avatar de ko^ke
ko^ke
 
Fecha de Ingreso: septiembre-2001
Ubicación: México D.F.
Mensajes: 364
Antigüedad: 23 años, 3 meses
Puntos: 1
En el siguiente código podrás ver una jsp con la paginacion de un resulset, empezando por incluir la conexion, crear el resulset, etc. ojalá te oriente

Código PHP:
<%@ page contentType="text/html; charset=iso-8859-1" language="java" import="java.sql.*" errorPage="" %>
<%@ include 
file="file:///C|/tomcat5/jakarta-tomcat-5.0.27/webapps/ROOT/sms/Connections/conn.jsp" %>
<%
Driver DriverrsPaginado = (Driver)Class.forName(MM_conn_DRIVER).newInstance();
Connection ConnrsPaginado DriverManager.getConnection(MM_conn_STRING,MM_conn_USERNAME,MM_conn_PASSWORD);
PreparedStatement StatementrsPaginado ConnrsPaginado.prepareStatement("SELECT * FROM sms_facturacion.users");
ResultSet rsPaginado StatementrsPaginado.executeQuery();
boolean rsPaginado_isEmpty = !rsPaginado.next();
boolean rsPaginado_hasData = !rsPaginado_isEmpty;
Object rsPaginado_data;
int rsPaginado_numRows 0;
%>
<%
// *** Recordset Stats, Move To Record, and Go To Record: declare stats variables

int rsPaginado_first 1;
int rsPaginado_last  1;
int rsPaginado_total = -1;

if (
rsPaginado_isEmpty) {
  
rsPaginado_total rsPaginado_first rsPaginado_last 0;
}

//set the number of rows displayed on this page
if (rsPaginado_numRows == 0) {
  
rsPaginado_numRows 1;
}
%>
<% 
String MM_paramName ""; %>
<%
// *** Move To Record and Go To Record: declare variables

ResultSet MM_rs rsPaginado;
int       MM_rsCount rsPaginado_total;
int       MM_size rsPaginado_numRows;
String    MM_uniqueCol "";
          
MM_paramName "";
int       MM_offset 0;
boolean   MM_atTotal false;
boolean   MM_paramIsDefined = (MM_paramName.length() != && request.getParameter(MM_paramName) != null);
%>
<%
// *** Move To Record: handle 'index' or 'offset' parameter

if (!MM_paramIsDefined && MM_rsCount != 0) {

  
//use index parameter if defined, otherwise use offset parameter
  
String r request.getParameter("index");
  if (
r==nullrequest.getParameter("offset");
  if (
r!=nullMM_offset Integer.parseInt(r);

  
// if we have a record count, check if we are past the end of the recordset
  
if (MM_rsCount != -1) {
    if (
MM_offset >= MM_rsCount || MM_offset == -1) {  // past end or move last
      
if (MM_rsCount MM_size != 0)    // last page not a full repeat region
        
MM_offset MM_rsCount MM_rsCount MM_size;
      else
        
MM_offset MM_rsCount MM_size;
    }
  }

  
//move the cursor to the selected record
  
int i;
  for (
i=0rsPaginado_hasData && (MM_offset || MM_offset == -1); i++) {
    
rsPaginado_hasData MM_rs.next();
  }
  if (!
rsPaginado_hasDataMM_offset i;  // set MM_offset to the last possible record
}
%>
<%
// *** Move To Record: if we dont know the record count, check the display range

if (MM_rsCount == -1) {

  
// walk to the end of the display range for this page
  
int i;
  for (
i=MM_offsetrsPaginado_hasData && (MM_size || MM_offset MM_size); i++) {
    
rsPaginado_hasData MM_rs.next();
  }

  
// if we walked off the end of the recordset, set MM_rsCount and MM_size
  
if (!rsPaginado_hasData) {
    
MM_rsCount i;
    if (
MM_size || MM_size MM_rsCountMM_size MM_rsCount;
  }

  
// if we walked off the end, set the offset based on page size
  
if (!rsPaginado_hasData && !MM_paramIsDefined) {
    if (
MM_offset MM_rsCount MM_size || MM_offset == -1) { //check if past end or last
      
if (MM_rsCount MM_size != 0)  //last page has less records than MM_size
        
MM_offset MM_rsCount MM_rsCount MM_size;
      else
        
MM_offset MM_rsCount MM_size;
    }
  }

  
// reset the cursor to the beginning
  
rsPaginado.close();
  
rsPaginado StatementrsPaginado.executeQuery();
  
rsPaginado_hasData rsPaginado.next();
  
MM_rs rsPaginado;

  
// move the cursor to the selected record
  
for (i=0rsPaginado_hasData && MM_offseti++) {
    
rsPaginado_hasData MM_rs.next();
  }
}
%>
<%
// *** Move To Record: update recordset stats

// set the first and last displayed record
rsPaginado_first MM_offset 1;
rsPaginado_last  MM_offset MM_size;
if (
MM_rsCount != -1) {
  
rsPaginado_first Math.min(rsPaginado_firstMM_rsCount);
  
rsPaginado_last  Math.min(rsPaginado_lastMM_rsCount);
}

// set the boolean used by hide region to check if we are on the last record
MM_atTotal  = (MM_rsCount != -&& MM_offset MM_size >= MM_rsCount);
%>
<%
// *** Go To Record and Move To Record: create strings for maintaining URL and Form parameters

String MM_keepBoth,MM_keepURL="",MM_keepForm="",MM_keepNone="";
String[] MM_removeList = { "index"MM_paramName };

// create the MM_keepURL string
if (request.getQueryString() != null) {
  
MM_keepURL '&' request.getQueryString();
  for (
int i=0MM_removeList.length && MM_removeList[i].length() != 0i++) {
  
int start MM_keepURL.indexOf(MM_removeList[i]) - 1;
    if (
start >= && MM_keepURL.charAt(start) == '&' &&
        
MM_keepURL.charAt(start MM_removeList[i].length() + 1) == '=') {
      
int stop MM_keepURL.indexOf('&'start 1);
      if (
stop == -1stop MM_keepURL.length();
      
MM_keepURL MM_keepURL.substring(0,start) + MM_keepURL.substring(stop);
    }
  }
}

// add the Form variables to the MM_keepForm string
if (request.getParameterNames().hasMoreElements()) {
  
java.util.Enumeration items request.getParameterNames();
  while (
items.hasMoreElements()) {
    
String nextItem = (String)items.nextElement();
    
boolean found false;
    for (
int i=0; !found && MM_removeList.lengthi++) {
      if (
MM_removeList[i].equals(nextItem)) found true;
    }
    if (!
found && MM_keepURL.indexOf('&' nextItem '=') == -1) {
      
MM_keepForm MM_keepForm '&' nextItem '=' java.net.URLEncoder.encode(request.getParameter(nextItem));
    }
  }
}

String tempStr "";
for (
int i=0MM_keepURL.length(); i++) {
  if (
MM_keepURL.charAt(i) == '<'tempStr tempStr "&lt;";
  else if (
MM_keepURL.charAt(i) == '>'tempStr tempStr "&gt;";
  else if (
MM_keepURL.charAt(i) == '"'tempStr tempStr +  "&quot;";
  else 
tempStr tempStr MM_keepURL.charAt(i);
}
MM_keepURL tempStr;

tempStr "";
for (
int i=0MM_keepForm.length(); i++) {
  if (
MM_keepForm.charAt(i) == '<'tempStr tempStr "&lt;";
  else if (
MM_keepForm.charAt(i) == '>'tempStr tempStr "&gt;";
  else if (
MM_keepForm.charAt(i) == '"'tempStr tempStr +  "&quot;";
  else 
tempStr tempStr MM_keepForm.charAt(i);
}
MM_keepForm tempStr;

// create the Form + URL string and remove the intial '&' from each of the strings
MM_keepBoth MM_keepURL MM_keepForm;
if (
MM_keepBoth.length() > 0MM_keepBoth MM_keepBoth.substring(1);
if (
MM_keepURL.length() > 0)  MM_keepURL MM_keepURL.substring(1);
if (
MM_keepForm.length() > 0MM_keepForm MM_keepForm.substring(1);
%>
<%
// *** Move To Record: set the strings for the first, last, next, and previous links

String MM_moveFirst,MM_moveLast,MM_moveNext,MM_movePrev;
{
  
String MM_keepMove MM_keepBoth;  // keep both Form and URL parameters for moves
  
String MM_moveParam "index=";

  
// if the page has a repeated region, remove 'offset' from the maintained parameters
  
if (MM_size 1) {
    
MM_moveParam "offset=";
    
int start MM_keepMove.indexOf(MM_moveParam);
    if (
start != -&& (start == || MM_keepMove.charAt(start-1) == '&')) {
      
int stop MM_keepMove.indexOf('&'start);
      if (
start == && stop != -1stop++;
      if (
stop == -1stop MM_keepMove.length();
      if (
start 0start--;
      
MM_keepMove MM_keepMove.substring(0,start) + MM_keepMove.substring(stop);
    }
  }

  
// set the strings for the move to links
  
StringBuffer urlStr = new StringBuffer(request.getRequestURI()).append('?').append(MM_keepMove);
  if (
MM_keepMove.length() > 0urlStr.append('&');
  
urlStr.append(MM_moveParam);
  
MM_moveFirst urlStr "0";
  
MM_moveLast  urlStr "-1";
  
MM_moveNext  urlStr Integer.toString(MM_offset+MM_size);
  
MM_movePrev  urlStr Integer.toString(Math.max(MM_offset-MM_size,0));
}
%>
<!
DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<
html>
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<
title>nothing</title>
</
head>

<
body>
<
table width="100%"  border="0">
  <
tr>
    <
td><%=(((rsPaginado_data rsPaginado.getObject("login"))==null || rsPaginado.wasNull())?"":rsPaginado_data)%></td>
    <
td><%=(((rsPaginado_data rsPaginado.getObject("perfil"))==null || rsPaginado.wasNull())?"":rsPaginado_data)%></td>
    <
td><%=(((rsPaginado_data rsPaginado.getObject("activo"))==null || rsPaginado.wasNull())?"":rsPaginado_data)%></td>
  </
tr>
  <
tr>
    <
td>&nbsp;</td>
    <
td>&nbsp;</td>
    <
td>&nbsp;</td>
  </
tr>
  <
tr>
    <
td>&nbsp;</td>
    <
td>&nbsp;</td>
    <
td>&nbsp;</td>
  </
tr>
</
table>

<
p>&nbsp;</p>

<
table border="0" width="50%" align="center">
  <
tr>
    <
td width="23%" align="center"><% if (MM_offset !=0) { %>
        <
a href="<%=MM_moveFirst%>">First</a>
        <% } 
/* end MM_offset != 0 */ %>
    </
td>
    <
td width="31%" align="center"><% if (MM_offset !=0) { %>
        <
a href="<%=MM_movePrev%>">Previous</a>
        <% } 
/* end MM_offset != 0 */ %>
    </
td>
    <
td width="23%" align="center"><% if (!MM_atTotal) { %>
        <
a href="<%=MM_moveNext%>">Next</a>
        <% } 
/* end !MM_atTotal */ %>
    </
td>
    <
td width="23%" align="center"><% if (!MM_atTotal) { %>
        <
a href="<%=MM_moveLast%>">Last</a>
        <% } 
/* end !MM_atTotal */ %>
    </
td>
  </
tr>
</
table>
</
body>
</
html>
<%
rsPaginado.close();
StatementrsPaginado.close();
ConnrsPaginado.close();
%> 
__________________
Aquí va la firma...

Última edición por ko^ke; 13/10/2004 a las 13:01