Foros del Web » Programación para mayores de 30 ;) » Java »

Paginar una collection de datos

Estas en el tema de Paginar una collection de datos en el foro de Java en Foros del Web. Hola, tengo un ejemplo de como paginar los datos directamente desde una base de datos en jsp; pero mi problema es que tengo una clase ...
  #1 (permalink)  
Antiguo 04/06/2010, 03:25
 
Fecha de Ingreso: noviembre-2009
Mensajes: 31
Antigüedad: 15 años
Puntos: 1
Paginar una collection de datos

Hola, tengo un ejemplo de como paginar los datos directamente desde una base de datos en jsp; pero mi problema es que tengo una clase Collection que es la que me extrae todos los datos a un formulario jsp, los cuales los quiero mostrar de 10 en 10.
Me gustaría saber como paginar dicha Collection de datos mediante jsp, he estado leyendo varios artículos pero no encuentro nada claro y si alguien me puede orientar en lo que respecta me haría un gran favor.
Esta es la clase Collection:
Código PHP:
 public Collection getPartituras () {
        
partituras = new ArrayList ();
       
        try {
            
this.getConnection ();
             
PreparedStatement preparedStatement this.connection.prepareStatement ("SELECT id, autor, fecha, notacion, nombre, clave, tipo, impresion FROM partituras")
            
ResultSet resultSet preparedStatement.executeQuery ();
            while (
resultSet.next ()) {
                     
Partitura partitura = new Partitura (
                    
resultSet.getString (1), resultSet.getString (2), resultSet.getString (3),
                    
resultSet.getString (4), resultSet.getString (5), resultSet.getString (6), 
                    
resultSet.getString (7), resultSet.getString (8)
                );
                
partituras.add (partitura);
            }
            
preparedStatement.close ();
        }
        catch (
SQLException e) {
            return 
null;
        }
        
this.releaseConnection ();

        return 
partituras;
    } 
Al recogerlas a través del formulario jsp realizo las siguientes instrucciones:
Código PHP:
 PartiturasBD partiturasBD = (PartiturasBDapplication.getAttribute ("BaseDatos");
            
Collection partituras partiturasBD.getPartituras();
            if (
partituras!= null) {
                if (
partituras.size () > 0) {
                    for (
Iterator iterator partituras.iterator(); iterator.hasNext(); ) {
                        
Partitura partitura = (Partituraiterator.next (); 
partitura(en minúscula) es la clase java donde defino las variables para recuperar los datos contenidos en la base de datos;


Atentamente, gioropu.
  #2 (permalink)  
Antiguo 04/06/2010, 05:11
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 16 años, 2 meses
Puntos: 188
Respuesta: Paginar una collection de datos

Crea una clase propia ColeccionPaginada que implemente serializable y con 5 atributos de tipo int (tamanho,indice,cuenta,paginasTotales,paginaActual ), sus gets y sets correspondientes, y un inicializador como este:

public ColeccionPaginada(Collection collection, int tamanho,
int indice, int cuenta) {

this.collection = collection;
this.tamanho= tamanho;
this.indice= indice;
this.cuenta= cuenta;
if (cuenta> 0) {
paginasTotales= tamanho/cuenta+ ( tamanho % cuenta== 0 ? 0 : 1 );
paginaActual= indice/cuenta+ ( indice % cuenta== 0 ? 0 : 1);
} else {
paginasTotales= 0;
paginaActual= 0;
}

}

Espero que te ayude...
  #3 (permalink)  
Antiguo 04/06/2010, 05:14
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 16 años, 2 meses
Puntos: 188
Respuesta: Paginar una collection de datos

A proposito, lo que pones ahí no es la clase Collection :D , es el método getPartituras() que te devuelve una collection.

Tendrás que readaptar todo para que envies la colección paginada y la puedas procesar.

Etiquetas: collection, paginar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:52.