Pagina 1 di 7 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 63
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    181

    [Java/JSP]Quale tecnica per impaginare risultato di una query?

    Salve ragazzi,

    il mio obiettivo è impaginare il risultato di una query suddividendolo in diverse pagine. Ad esempio visualizzare 10 record per pagina. Ovviamente mi serve anche un menu come quello presente in ogni forum per saltare di 10 pagine e cosi via...

    ho visto che ci sono almeno due metodi, uno è quello di utilizzare la libreria displaytag, l'altro è quello di utilizzare l'interfaccia cachedrowset.

    Secondo voi qual è la soluzione migliore? Ne conoscete altre, magari più semplici?

    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    181
    nessuno

  3. #3
    Conosco struts layout ma è simile a displaytag ma un po + contorta quindi a semplicità credo che displaytag sia la migliore , metti il jar fai implementare l'interfaccia PaginatedList e usi sulla jsp le taglibrary e hai fatto la paginazione.

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    181
    ciao,

    grazie per la risposta.
    Devo dire che ho trovato molte difficoltà a capire come usare la displaytag. Ho scaricato anche la guida ma non mi sembra chiarissima..

    Quello che ho capito è che bisogna trasformare il resultset in List.
    Leggendo la guida, ho trovato un esempio che si riferisce ad una tabella.

    Ecco il codice:



    Codice PHP:
    <jsp:root version="1.2" xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:display="urn:jsptld:[url]http://displaytag.sf.net[/url]">
      <
    jsp:directive.page contentType="text/html; charset=UTF8" />
      <
    jsp:directive.page import="org.displaytag.sample.*" />
      <
    jsp:include page="inc/header.jsp" flush="true" />

      <
    jsp:scriptlet>
    request.setAttribute"test", new TestList(10false) );
    </
    jsp:scriptlet>

      <
    h2>Columns</h2>

      <
    display:table name="test">
        <
    display:column property="id" title="ID" />
        <
    display:column property="name" />
        <
    display:column property="email" />
        <
    display:column property="status" />
        <
    display:column property="description" title="Comments" />
      </
    display:table
    Ora da quello che so io, con request.setAttribute si memorizza un dato nell'oggetto session. Che c'entra l'oggetto session con displaytag?
    Ad intuito ho pensato che in questo modo si passa una lista a displaytag, ma che sono i valori 10, false?

    Potresti postarmi un esempio per favore? Grazie

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    scusa dove hai trovato TestList? è una cosa che hai fatto tu o hai preso in automatico?

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    181
    no è nella guida che ti da assieme a displaytag. La guida è in un file .war

  7. #7
    Allora :
    - Ti fai un ogetto Bean con i get e i set che rappresenta la tua riga di db.
    codice:
    public class MyBean {
          private int id; 
          private String name; 
          private String email;
          private String status;
         
          public String getName() {
              return name;
          }
          public void setName(String name) {
              this.name=name ;
          }
    .
    ..
    ....
    }
    - Fai la query cicli il result set e popoli n oggetti Bean che hai creato.
    - Li aggiungi ad una lista.
    - La lista la metti in sessione col nome esempio "test"
    - sulla pagina con l'attributo page decidi quanti risultati vedere per pagina es 5:
    codice:
    <display:table name="test" page="5"> 
        <display:column property="id" title="ID" /> 
        <display:column property="name" /> 
        <display:column property="email" /> 
        <display:column property="status" /> 
    </display:table>
    Così se per caso nella lista avro 15 MyBean ne farà vedere 5 su un totale di 3 pagine
    Chiaro?

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    Allora distingui bene cosa ti fornisce il sistema e cosa l'esempio. Se te la fornisce il sistema hai una relativa API che ti spiega cosa fai, in caso contrario suppongo che visualizzi una lista di test di 10 elementi, non so a cosa serva false (dovresti vedere il sorgente per capire i parametri)

  9. #9
    Originariamente inviato da valia
    Allora distingui bene cosa ti fornisce il sistema e cosa l'esempio. Se te la fornisce il sistema hai una relativa API che ti spiega cosa fai, in caso contrario suppongo che visualizzi una lista di test di 10 elementi, non so a cosa serva false (dovresti vedere il sorgente per capire i parametri)
    Allora TestList è una classe di test di displaytag che estende ArrayList e nel costruttore prende il size di questa lista e il booleano serve per fargli capire se ci possono essere o no duplicati , ma è una classe di esempio.

  10. #10
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    181
    Originariamente inviato da snakeplinsky
    Allora :
    - Ti fai un ogetto Bean con i get e i set che rappresenta la tua riga di db.
    codice:
    public class MyBean {
          private int id; 
          private String name; 
          private String email;
          private String status;
         
          public String getName() {
              return name;
          }
          public void setName(String name) {
              this.name=name ;
          }
    .
    ..
    ....
    }
    - Fai la query cicli il result set e popoli n oggetti Bean che hai creato.
    - Li aggiungi ad una lista.
    - La lista la metti in sessione col nome esempio "test"
    - sulla pagina con l'attributo page decidi quanti risultati vedere per pagina es 5:
    codice:
    <display:table name="test" page="5"> 
        <display:column property="id" title="ID" /> 
        <display:column property="name" /> 
        <display:column property="email" /> 
        <display:column property="status" /> 
    </display:table>
    Così se per caso nella lista avro 15 MyBean ne farà vedere 5 su un totale di 3 pagine
    Chiaro?
    Allora, credo di aver capito tutto, sto cercando di trasferire il contenuto di un resultset in un ArrayList...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.