IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

[JSP] affichage de resultat sur plusieurs pages


Sujet :

Servlets/JSP Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 47
    Points : 22
    Points
    22
    Par défaut [JSP] affichage de resultat sur plusieurs pages
    bonjour,

    je suis debutant en JSP, et je souhaiterais afficher les resultats d'une requete via jdbc sur une page html avec une gestion des pages suivantes et precedentes

    comme les sujets des forum par exemple

    merci de vos reponses

  2. #2
    Membre éprouvé
    Avatar de yolepro
    Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2002
    Messages
    918
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mai 2002
    Messages : 918
    Points : 1 144
    Points
    1 144
    Par défaut
    Tout d'abord il faut que tu mettes ton résultat dans un tableau ou un vecteur (ArrayList ou Vector).
    Ensuite il faut que tu regardes comment fonctionne les sessions (notion indispensable).
    Tu mets ton vecteur dans la session avec l'index en cours.

    Puis enfin que tu récupère ton vecteur de la session avec son index et que tu généres le tableau résultant en fonction de ton index.
    Etre c'est etre relatif.

  3. #3
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 882
    Points : 948
    Points
    948
    Par défaut
    Je sais que tu es debutant, mais si tes jsp sont liees a une appli basee sur Struts, tu peux utiliser la tld struts-layout , elle te permet facilement de faire de la pagination sur des donnees contenues dans une collection par exemple

    Bon courage

    Sun Certified Business Component Developer
    Sun Certified Java Programmer
    --
    The definitive toolbox for GWT applications: gwt-toolbox
    My blog about Java and JEE: Benjamin's Blog

  4. #4
    Membre expérimenté
    Avatar de viena
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    1 071
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 071
    Points : 1 512
    Points
    1 512
    Par défaut
    Si tu n'utilises pas Struts, il y a aussi :
    le pager tag List
    le displayTag
    D'ailleurs, pour le displayTag, meme si tu utilises Struts, je te le recommande, il est très bien.
    Cours et tutoriels pour apprendre Java , FAQ Java, et Forum Java
    "La liberté de tout être s'arréte là où commence celle de l'autre... Respecter l'autre, c'est préserver sa liberté d'être, de penser et de vivre"

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 47
    Points : 22
    Points
    22
    Par défaut
    mais vaut-il mieux :
    - une servlet avec la requete + 1 jsp d'affichage avec passage du tableau
    - une jsp avec la requete + 1 jsp d'affichage avec passage du tableau

    la gestion des pages ( suivante/precedente) doit-elle se faire sur la jsp d'affichage ?


    y-a-t-il du code sur lequel je pourrais m'appuyer pour les enchainements entre les 2 pages.

    actuellement je fais tout sur une page

    voici un bout de mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
        String Color ="";
        int TopCol = 0;
        String req1="select cod_cmp, lic_cmp,lib_cmp, tem_en_sve_cmp from composante order by 3";
        ResultSet rset = stmt.executeQuery(req1.toString());
        // creation entete de table
    %>
        <table border=1 cellpadding='2'>
            <CAPTION ALIGN=TOP>LISTE DES COMPOSANTES</CAPTION> 
            <tr bgcolor='#5F9EA0'>
                <th>Code</th>
                <th>libelle court</th>
                <th>Libelle long</th>
                <th>Tem Sve</th>
            </tr>
    <%
        // traitement lecture du buffer
        while(rset.next())
        {  
            if (TopCol==1) {
                Color = "#D2B48C";
                TopCol = 0;
            }
            else {
                Color = "#FFE4B5";
                TopCol=1;
            }
            
    %>
            <tr bgcolor="<%=Color%>">
                <td width="10%"><%= rset.getString(1)%></td>
                <td width="15%"><%= rset.getString(2)%></td>
                <td width="35%"><%= rset.getString(3)%></td>
                <td width="8%"><%= rset.getString(4)%></td>
            </tr>
    <%    
        }
        rset.close();
        conn.close();
    %>
    merci d'avance

  6. #6
    Membre expérimenté
    Avatar de viena
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    1 071
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 071
    Points : 1 512
    Points
    1 512
    Par défaut
    Encore une fois, regarde un peu se que peut faire le DisplayTag ! Il gere ça tout seul, tu n'a qu'à le configurer avec le nombre d'enregistrements que tu veux dans une table.
    Cours et tutoriels pour apprendre Java , FAQ Java, et Forum Java
    "La liberté de tout être s'arréte là où commence celle de l'autre... Respecter l'autre, c'est préserver sa liberté d'être, de penser et de vivre"

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 47
    Points : 22
    Points
    22
    Par défaut
    j'ai bien recupere le package correspondant aux Taglibs :
    commons-beanutils.jar
    commons-collections.jar
    commons-logging.jar

    je travaille avec netbean, et j'ai donc mis mes package dans le WEB_INF/lib de mon appli.
    mais j'ai des erreurs dans la compilation de ma JSP
    voici un bout de ma JSP

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
    <%@page contentType="text/html"%>
    <%@page pageEncoding="UTF-8"%>
    <%@page language="java" import="java.util.*, java.sql.*, commons-beanutils.*,fonctions.fonct.*" %>
    <%@ taglib uri="http://displaytag.sf.net" prefix="display" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html>
    <head><title>JSP Page</title></head>
    <body>
    <%-- <jsp:useBean id="beanInstanceName" scope="session" class="beanPackage.BeanClassName" /> --%>
    <%-- <jsp:getProperty name="beanInstanceName"  property="propertyName" /> --%>
    <%
    //cree la connection
     Connection conn=null;
     //connection à la base de données
      try
      {           
      DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
      //chaine de connection à la base de données
      conn = DriverManager.getConnection ("jdbc:oracle:thin:@147.94.113.168:1524:GRILLE", "grille", "grille");
      }
      catch(SQLException exception)
      {
         out.println("Pb de connexion:" + exception);
      }
        Statement stmt = conn.createStatement();
        //pour recuperer des parametres venant du formulaire de la page precedente. exemple:
        //fonctions.requete req;
        String Annee = "2004";
        String Color ="";
        int TopCol = 0;
        String req1="select cod_cmp, lic_cmp,lib_cmp, tem_en_sve_cmp from composante order by 3";
        // pour ajouter des parametres ex : req= "select * from personnel where nom='"+nom+"'";
        ResultSet rset = stmt.executeQuery(req1.toString());
        RowSetDynaClass resultSet = new RowSetDynaClass(rset, false);
        rset.close();
        conn.close();
        request.setAttribute("results", resultSet);
    %>
    <display:table name="requestScope.results.rows" />
    </body>
    </html>
    le message concerne la methode RowSetDynaClass.

    merci de votre aide.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 47
    Points : 22
    Points
    22
    Par défaut
    j'ai trouve la reponse à ma question
    j'avais fait un mauvais import

    si je ne precise aucun <display:column />, c'est ok, mais les colonnes ne sont pas dans l'odre de la selection : pourquoi ?????
    je voulais donc utiliser les <display:column> pour afficher mes colonnes dans un ordre precis, mais j'ai le message

    org.apache.jasper.JasperException: Error looking up property "cod_cmp" in
    object type "org.apache.commons.beanutils.BasicDynaBean"
    donc cela veut dire qu'il ne trouve pas le lien entre la propriete de la colonne et le nom de l'attribut de ma list.

    voila un bout de mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    <display:table width="85%" scope="request" pagesize="10" name="TAB">
        <display:caption>LISTE DES COMPOSANTES</display:caption>
        <display:column title="Composante" property="cod_cmp">
        <display:column title="Libelle Court" />
        <display:column title="Libelle Long" />
        <display:column title="Tem" />
        <display:setProperty name="paging.banner.placement" value="bottom" />
    </display:table>
    je ne comprends pas le pb
    quelqu'un a t-il des exemples de JSP avec des taglib .
    merci de votre aide.

  9. #9
    Membre expérimenté
    Avatar de viena
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    1 071
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 071
    Points : 1 512
    Points
    1 512
    Par défaut
    As tu un getter pour la propriete dans cod_cmp dans ton objet ? elle doit ressembler à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public TypeCod_cmp getCod_cmp() {
       return cod_cmp;
    }
    Cours et tutoriels pour apprendre Java , FAQ Java, et Forum Java
    "La liberté de tout être s'arréte là où commence celle de l'autre... Respecter l'autre, c'est préserver sa liberté d'être, de penser et de vivre"

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 47
    Points : 22
    Points
    22
    Par défaut
    j'au trouve la reponse, en cherchant sur la dynaclass

    il faut mettre les noms des attributs en majuscule ( c'est un pb de compatibilite


    Each column in the result set will be represented as a DynaBean property of the corresponding name (optionally forced to lower case for portability). There will be one DynaBean in the List returned by getRows() for each row in the original ResultSet.
    maintenant j'ai bien mes colonnes dans l'odre.

    est-ce que quelqu'un a des exmples de tableaux avec des styles et des decoration.

    merci d'avance

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2003
    Messages : 21
    Points : 17
    Points
    17
    Par défaut
    Salut à tous,

    je viens de découvrir display tag, et j'ai regardé un peu les exemples, ça a l'air pas mal du tout. Mais j'ai une petite question.

    Je vois que la pagination sur plusieurs pages affiche :
    [First/Prev] 1, 2, 3 [Next/Last]
    par exemple. Comment on fait pour traduire First/Prev en français ?

    On modifie le code de display tag à la barbare, où y'a un truc plus propre (j'espère que oui) ?

    Merci

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 47
    Points : 22
    Points
    22
    Par défaut
    oui tu peux te servir du tag <display:setproperty> qui agit sur l'ensemble de la table.
    voici un exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <DISPLAY:SETPROPERTY name="paging.banner.first" value="[Deb/Prec]{0}{3}Suiv{4}Der" />
    <DISPLAY:SETPROPERTY name="paging.banner.full" value=" {1}Deb{2}Prec{0}{3}Suiv{4}Der" />
    <DISPLAY:SETPROPERTY name="paging.banner.last" value="{1}Deb{2}Prec{0}[Suiv/Der]" />
    {0} correpond aux numero de pages
    {1} lien sur la premiere page
    {2} lien sur la pages precedente
    {3} lien sur la page suivante
    {4} lien srur la derniere page

    etc ....
    il ya pleins d'autres options possibles.

    va voir http://displaytag.sourceforge.net/configuration.html

  13. #13
    Membre expérimenté
    Avatar de viena
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    1 071
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 071
    Points : 1 512
    Points
    1 512
    Par défaut
    Un petit tag résolu svp...
    Cours et tutoriels pour apprendre Java , FAQ Java, et Forum Java
    "La liberté de tout être s'arréte là où commence celle de l'autre... Respecter l'autre, c'est préserver sa liberté d'être, de penser et de vivre"

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 47
    Points : 22
    Points
    22
    Par défaut
    je voulais savoir si quelqu'un pouvait me donner quelques exemples de tableaux deja fait.

    cela m'aiderait beaucoup, il y a encore quelques petites inerrogations dur la mise en forme pour que cela soit propre.

    merci d'avance

    apres promis, je mets le sujet en resolu.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. affichage de resultat dans plusieurs pages
    Par hadjiphp dans le forum Langage
    Réponses: 3
    Dernier message: 23/05/2009, 15h28
  2. Affichage de données sur plusieures pages [2.0]
    Par H-bil dans le forum ASP.NET
    Réponses: 2
    Dernier message: 26/06/2007, 17h14
  3. [MySQL] Résultats sur plusieurs pages
    Par sly33 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 31/10/2006, 17h42
  4. [Struts] résultat sur plusieurs pages
    Par agougeon dans le forum Struts 1
    Réponses: 15
    Dernier message: 13/10/2005, 08h28
  5. [JSP]affichage d'un tableau sur plusieurs pages
    Par MAJIK_ENIS dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 29/08/2005, 11h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo