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 :

[sevlet][JSP] forwarder un ResultSet


Sujet :

Servlets/JSP Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juin 2004
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 53
    Points : 39
    Points
    39
    Par défaut [sevlet][JSP] forwarder un ResultSet
    voila le probleme : a partir d'une servlet, j'essaie de forwarder un ResultSet a une page JSP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    request.setAttribute("resultset", liste);
    rd = application.getRequestDispatcher("/accueil/frame_haut.jsp");
    rd.forward(request, response);
    tout marche parfaitement lorsque je ne transmet qu'un seul ResultSet

    Le probleme survient quand je veux en transmettre plusieurs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    request.setAttribute("resultset", liste);
    request.setAttribute("resultset2", liste2);
    rd = application.getRequestDispatcher("/accueil/frame_haut.jsp");
    rd.forward(request, response);
    quand je récupère tout ca dans ma jsp pour parcourir mes 2 resultset, je recois une erreur
    "javax.servlet.ServletException: Operation not allowed after ResultSet closed"
    erreur que je ne recois pas lorsque je ne parcours qu'un seul resultset

    serait-il impossible de parcourir plusieurs resultset dans une JSP ? est-ce que qqn aurait une solution a proposer svp ?
    merci !

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 63
    Points : 68
    Points
    68
    Par défaut
    C'est plutôt du côté de ton code JSP qu'il faudrait regarder...
    Quoiqu'il en soit, forwarder un resultset à une JSP n'est vraiment pas joli du point de vue conceptuel... Cela lie de manière très intime l'affichage des données à la manière dont elles sont stockées en base. Il vaudrait donc mieux te faire une structure de type 'DataGrid' (= un tableau/une list générique de données) dans laquelle tu recopies (en faisant éventuellement des conversions pour la présentation) tes données. Tu peux également retourner des listes de JavaBeans. En séparant présentation et données de la sorte tu n'auras plus à gérer des problèmes de connexion/resultset dans tes JSP comme c'est le cas actuellement...
    Donne quand meme le code de ton JSP, je suis curieux de voir d'où vient ton problème

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juin 2004
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 53
    Points : 39
    Points
    39
    Par défaut
    voila pour le code dans le 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
    <html>
    <body>
    <form>
    <table>
      <tr>
        <td>
        <% ResultSet resultatUser = (ResultSet) request.getAttribute("resultset"); %>
          <select name="login">
          <% while (resultatUser.next()) { %>
            <option value="<%= resultatUser.getString("RUSENM") %>"><%= resultatUser.getString("RUSENM") %></option>
          <% } %>
          </select>
        </td>
        <td>
          <% ResultSet resultat = (ResultSet) request.getAttribute("resultset2"); %>
            <select name="login">
            <% while (resultat.next()) { %>
              <option value="<%= resultat.getString("ONOM") %>"><%= resultat.getString("ONOM") %></option>
            <% } %>
          </select>
        </td>
      </tr>
    </table>
    </form>
    </body>
    </html>
    dans ce cas j'utilise une servlet parce que c'est le traietment d'un formulaire qui me renvoie ceci, dans un autre cas j'utiliserais plutot un bean

  4. #4
    Membre habitué Avatar de Kimael
    Inscrit en
    Avril 2002
    Messages
    151
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 151
    Points : 159
    Points
    159
    Par défaut
    Citation Envoyé par deldin
    désolé pour le double post...
    Tu sais, il y a une fonction [X] de suppression de message,
    et même une fonction [editer] d'édition

    Je tiens a insister sur le fait que ce n'est pas propre des lier les données (SGBD) à la présentation (JSP).
    Génréralement, on met un contrôleur (Servlet) entre les deux...
    Membre du comité "Mort aux cons ! ARG..."
    Plus on essaye, et plus on a de chances de réussir... proverbe Shadok.
    Pensez au tag [Résolu], merci.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 63
    Points : 68
    Points
    68
    Par défaut
    Bizarre, je ne vois rien dans ton code qui puisse expliquer l'erreur que tu récupères... D'ailleurs tu ne fermes pas tes ResultSet.

  6. #6
    Nouveau membre du Club
    Inscrit en
    Juin 2004
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 53
    Points : 39
    Points
    39
    Par défaut
    j'avais volontairement laissé le resultset ouvert, pour tester si l'ereur venait de la ou non

    mais meme en faisant
    j'obtiens la meme erreur...

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 63
    Points : 68
    Points
    68
    Par défaut
    Bon ben voilà, tu as une excellente raison de ne plus transmettre tes ResultSet dans ta requête et de les convertir en listes de Beans

  8. #8
    Nouveau membre du Club
    Inscrit en
    Juin 2004
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 53
    Points : 39
    Points
    39
    Par défaut
    c'est bon, merci à tous, j'ai réussi à trouver une solution au problème !

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 63
    Points : 68
    Points
    68
    Par défaut
    Simple curiosité, comment as-tu procédé ?

  10. #10
    Nouveau membre du Club
    Inscrit en
    Juin 2004
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 53
    Points : 39
    Points
    39
    Par défaut
    j'ai suivi ton conseil et j'utilise des beans :
    j'appelle un bean qui me renvoie un premier resultset que je parcours, puis je ferme mon resultset
    j'appelle alors le 2e bean qui me renvoie un autre resultset que je peux parcourir sans probleme.

    encore merci Greedo

  11. #11
    Membre expérimenté
    Avatar de RanDomX
    Profil pro
    sans
    Inscrit en
    Mars 2003
    Messages
    579
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mars 2003
    Messages : 579
    Points : 1 407
    Points
    1 407
    Par défaut
    Moi je sais : fais voir comment tu construits tes deux resultSet !!

    je suis pret a parier que le second depend du premier.

  12. #12
    Nouveau membre du Club
    Inscrit en
    Juin 2004
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 53
    Points : 39
    Points
    39
    Par défaut
    bah j'ai plus le code original, vu que j'ai tout changé pour les beans...

    les resultset n'étaient pas liés, ils récupéraient des données différentes.
    en fait je pense que le probleme venait du fait que mes 2 resultset utilisaient le meme statement.
    peut-etre que ca aurait marché si j'avais établi 2 connections a la base de données, j'aurais pu avoir 2 statement donc 2 resultset, et la je pense que ca aurait été possible

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

Discussions similaires

  1. jsp:forward dans le body d'un tag perso !?
    Par pilate dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 07/08/2009, 22h19
  2. récupération d'integer dans JSP et dans ResultSet
    Par fripette dans le forum Servlets/JSP
    Réponses: 11
    Dernier message: 29/05/2008, 12h11
  3. JSP Forward et Frames
    Par casgr1 dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 03/05/2006, 10h56
  4. [servlet][JSP]forwarder dans une frame
    Par deldin dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 30/06/2004, 18h03
  5. [JSP] Probleme avec ResultSet
    Par Jovial dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 11/05/2004, 11h02

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