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 :

Affichage d'un tableau


Sujet :

Servlets/JSP Java

  1. #1
    Membre très actif
    Inscrit en
    Novembre 2010
    Messages
    221
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 221
    Par défaut Affichage d'un tableau
    slt a vous voila je débute avec Jsp et j'aimerais savoir comment utiliser le flux out.println pour crée un tableau
    Dynamique car lorsque je procède comme suite des erreurs mes sont affiches par nom ID
    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
    <%
         session=request.getSession();
                  resulte=(ResultSet)session.getAttribute("resulte");
                  j=((Integer)session.getAttribute("total")).intValue();
                 out.println("<table align=center>");
                 out.println("<th align=center></th>");
                 out.println("<th width=110 bgcolor=#CCCCCC align=center> auteur</th>");
                 out.println("<th width=80 bgcolor=#CCCCCC align=center>Nom</th>");
                 out.println("<th width=80 bgcolor=#CCCCCC align=center>Prenom</th>");
                 out.println("<th width=80 bgcolor=#CCCCCC align=center>mail</th>");
                 out.println("<th width=80 bgcolor=#CCCCCC align=center>numero</th>");
                 out.println("</tr>"); 
                  while(resulte.next()){
                 out.println("<tr><td><input type=checkbox name=nom[] value=}%><%=(Integer)resulte.getString("id")%><%{ title=id  align=center></a></td><td> }%><%=(String)resulte.getString("auteur")%> <%{</td><td>}%> <%=(String)resulte.getString("nom")%> <%{</td><td>}%> <%=(String)resulte.getString("prenom")%> <%{</td><td>}%> <%=resulte.getString("mail")%><%{</td><td>}%><%=(String)resulte.getString("numero") %><%{</td></tr>");
                      }
                 out.println("<tr><td colspan=6 style=background-color:#333333;border-color:#000000;border:0;> <a style=text-decoration:none;color:#0000FF;font-family:Verdana, Arial, Helvetica, sans-serif;><strong>Nombre de contacts :&nbsp;&nbsp;<input type=text  value=%><%= j %> <% name=total_inscri readonly=readonly /></strong></a></td></tr>");
     
            %>
    notons que dans chaque colonne de ce tableau j'aimerais inserer une valeur d'un champ d'une table de ma BD.
    donc comme j'ai deja dit mon probleme est d'un probleme de syntaxe et reside plus a ce niveau.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     out.println("<tr><td><input type=checkbox name=nom[] value=}%><%=(Integer)resulte.getString("id")%><%{ title=id  align=center></a></td><td> }%><%=(String)resulte.getString("auteur")%> <%{</td><td>}%> <%=(String)resulte.getString("nom")%> <%{</td><td>}%> <%=(String)resulte.getString("prenom")%> <%{</td><td>}%> <%=resulte.getString("mail")%><%{</td><td>}%><%=(String)resulte.getString("numero") %><%{</td></tr>");
    Car je ne sais comment joindre ces différents tags dans ce flux de sortie afin de rendre ma chaine de caractère correcte.
    Espérant mettre bien exprimer, toute idée, conseil ou assistance serait le bien venu.
    a++

  2. #2
    Membre très actif
    Inscrit en
    Juin 2005
    Messages
    210
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 210
    Par défaut
    Bon alors déjà ça serait bien que tu post les exceptions.
    Ensuite il serait peut plus simple pour toi d'utilisé la (JSTL

    Et si tu utilise des servlets il est plus judicieux de passer ta liste dans la request et de l'afficher avec la jstl avec un forEach par exemple

    Petit rappel JSP = beaucoup d'html et peu voir pas de java pur => les scriplets c'est pas top propre

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 6
    Par défaut
    Salut,
    je pense qu'il manque des +
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    out.println("..."+id+"...");

  4. #4
    Membre très actif
    Inscrit en
    Novembre 2010
    Messages
    221
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 221
    Par défaut Affichage d'un tableau
    slt et merci pour les JSTL elle fut vraiment très intéressent toutefois je n'arrive pas encore á voir comment il pourrait m'aide et concernant le <taglib>foreach je doute qu’il puisse m’aide
    Car je pense que son attribut value se doit de contenir un entier or je veux incrémente les objectes contact retourne par mon ResultSet.
    ainsi,toute idee,conseil ou assistance serait la bien venus.
    a++

  5. #5
    Membre chevronné Avatar de florentB
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2006
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2006
    Messages : 332
    Par défaut
    Les JSTL permettent de manipuler des objets.
    Ainsi, partons du principe que tu as un objet Contact qui contient un objet Personne. L'objet Personne contient Nom et Prénom :
    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
     
     
    public class Contact {
         Personne personne;
     
         public Personne getPersonne() {
              return personne;
         }
    }
     
     
    public class Personne {
         String nom;
         String prenom;
     
         public String getNom() {
              return nom;
         }
     
         public Personne getPrenom() {
              return prenom;
         }
    }
    Dans ta JSP, tu peux faire un truc du style
    ${contact.personne.nom}
    Je me souviens plus trop de la syntaxe, mais l'idée est là.

    Attention il te fait les Gets associés (getPersonne(), etc ...) pour pouvoir accéder aux objets via JSTL

  6. #6
    Membre très actif
    Inscrit en
    Juin 2005
    Messages
    210
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 210
    Par défaut
    Sinon si tu veux absolument affiché ça via un resultset, voici un exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <%
    ResultSet rs = stmt.executeQuery(strQry);
    int cntr = 0;
    while(rs.next())
    {
    cntr++; %>
    <tr>
    <td><%= rs.getString("name") %></td>
    <td><%= rs.getString("ssn") %></td>
    <td><%= rs.getDate("rcvd") %></td>
    </tr>
    <% } %>
    Car a mon avis le problème viens de ton out.println ...

    Sinon de mémoire pour transformer des resultset en List il y a la librairie apache DButils dont voici un tuto
    ça te permettra d'utiliser des bean correspondant a tes table et de les mapper grâce a DButils (donc par contre a ne pas faire dans les JSP) ...
    et ensuite tu manipulera de simple JavaBean dans tes JSP ou des List contenant des Bean que tu poura facilement parcourir dans tes JSP via la JSTL ...
    Car les resultSet c'est un peu relou a manipuler .... enfin après c'est toi vois....

  7. #7
    Membre chevronné Avatar de florentB
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2006
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2006
    Messages : 332
    Par défaut
    Car les resultSet c'est un peu relou a manipuler .... enfin après c'est toi vois....
    En fait, manipuler des resultset dans une JSP est surtout, comment dire ultra crade.
    Apparemment, tu récupère le resultset de la session ... cela veut donc dire que tu n'as pas fermé ni le resultset ni le statement ... Je veux bien que les bases de données soient performantes, mais j'espère pour toi qu'il n'y aura pas beaucoup de connexion à ton appli ...

    Je te donne un conseil, après tu en fais ce que tu veux. Je répète un peu ce qu'a dit garthos.

    Une fois que tu as récupéré tes données dans ton resultset, transforme le résultat en bean, en liste de bean.
    Ferme ton resultset et ton statement

    Et enfin, met ces informations dans la session au lieu de ton resultset.

    Il serait de bon ton de jeter un coup d'oeil sur le modèle MVC.
    Il permet de bien séparer les couches de présentation, de traitement et d'accès aux données. Tu y gagneras en compréhension de code et en maintenance.

Discussions similaires

  1. [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
  2. [débutant]problèmes d'affichage dans un tableau
    Par Hastur dans le forum Balisage (X)HTML et validation W3C
    Réponses: 12
    Dernier message: 16/08/2005, 12h00
  3. Prob d'affichage d'un tableau resultant d'u...
    Par Yohips dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 08/12/2004, 17h23
  4. [MFC] Affichage d'un tableau
    Par SethPech dans le forum MFC
    Réponses: 7
    Dernier message: 23/02/2004, 15h48
  5. xml-xsl-fo : probleme d'affichage d'un tableau
    Par clindoeil dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 12/12/2003, 12h46

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