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

Struts 1 Java Discussion :

[JSP] Affichage de la liste des variables en session


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de domiq44
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 302
    Par défaut [JSP] Affichage de la liste des variables en session
    Bonjour,

    Afin de débogger mes JSP, j'ajoute au besoin la séquence suivante dans mes JSP :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <tr>
    <%
            String names[] = session.getValueNames();
            for (int i=0, n=names.length; i<n; i++) {
                    String key = names[i];
                    out.println ("<tr>");
                    out.println ("<td>" + key + "</td>");
                    out.println ("<td>" + session.getValue(key) + "</td>");
                    out.println ("</tr>");
            }
    %>
    </tr>
    Je souhaiterais coder ça en utilisant les taglibs de Struts.

    J'ai essayé ça mais ça ne fonctionne pas !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <tr>
            <bean:define id="liste">
                    <%= session.getValueNames() %>
            </bean:define>
            <logic:iterate id="element" name="liste">
                    <bean:write name="element" />
            </logic:iterate>
    </tr>
    Une autre piste peut être en utilisant la taglib « Displaytag » (<display:table>) pour afficher cette liste?

    Alors comment faire ?
    Quelqu'un peut-il m'aider ?

    Merci.

  2. #2
    Membre éclairé Avatar de domiq44
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 302
    Par défaut
    En fait, la première exemple contient la méthode « getValueNames() » qui est « deprecated »!

    On peut la remplacer par la méthode « getAttributeNames() » qui retourne une variable de type « java.util.Enumeration ».

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <tr>
    <%
            java.util.Enumeration e = session.getAttributeNames();
            while (e.hasMoreElements()) {
                    String key = (String) e.nextElement();
                    out.println ("<tr>");
                    out.println ("<td>" + key + "</td>");
                    out.println ("<td>" + session.getAttribute(key) + "</td>");
                    out.println ("</tr>");
            }
    %>
    </tr>
    Même problème pour :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <tr>
            <bean:define id="liste">
                    <%= session.getAttributeNames() %>
            </bean:define>
            <logic:iterate id="element" name="liste">
                    <bean:write name="element" />
            </logic:iterate>
    </tr>
    Est-il possible de remplacer ce code Java par des taglibs Struts comme <logic:iterate> ?

    Merci.

  3. #3
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Essaie plutôt ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <% request.setAttribute("liste",session.getAttributeNames()) ; %>
     
    <logic:iterate name="liste" id="element">
    	<bean:write name="element"/>
    </logic:iterate>
    Sinon, il existe une solution sans scriptlet avec la JSTL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <c:forEach items="${sessionScope}" var="element">
    	<tr>
    	<td>${element.key}</td>
    	<td>${element.value}</td>
    	</tr>
    </c:forEach>

  4. #4
    Membre éclairé Avatar de domiq44
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 302
    Par défaut
    Bonjour et merci « c_nvy »

    Je viens d'essayer la première solution qui est plus dans l'esprit de ce que je cherchais.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <% request.setAttribute("liste", session.getAttributeNames()); %>
    <logic:iterate name="liste" id="element">
            <tr>
                    <td><bean:write name="element"/></td>
            </tr>
    </logic:iterate>
    Le seul problème, c'est que je n'obtiens que les clés (key).

    Ce doit être quelque chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <% request.setAttribute("liste", session.getAttributeNames()); %>
    <logic:iterate name="liste" id="element">
        <tr>
            <td><bean:write name="element"/></td>
            <td><bean:write name="<%= session.getAttribute(${element}) %>"/></td>
        </tr>
    </logic:iterate>
    mais ça ne fonctionne pas!
    Comment puis-je faire pour obtenir aussi les valeurs (value) ?

    Merci.

  5. #5
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Ah oui, pardon, ma solution Struts était incomplète.

    Essaie tout simplement ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <% request.setAttribute("liste", session.getAttributeNames()); %>
    <logic:iterate name="liste" id="element">
        <tr>
            <td><bean:write name="element"/></td>
            <td><bean:write name="${element}"/></td>
        </tr>
    </logic:iterate>

  6. #6
    Membre éclairé Avatar de domiq44
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 302
    Par défaut
    Oui ça marche
    Merci « c_nvy »

    Mais j'aimerais bien comprendre

    Quel est la différence entre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <bean:write name="element"/>
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <bean:write name="${element}"/>
    ?

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

Discussions similaires

  1. [Sécurité] $_ENV => Liste des variables liées
    Par Romanops dans le forum Langage
    Réponses: 8
    Dernier message: 17/04/2007, 15h07
  2. Réponses: 2
    Dernier message: 06/11/2006, 14h35
  3. [POO] Liste des variables de mon Objet
    Par hisy dans le forum Langage
    Réponses: 2
    Dernier message: 20/09/2006, 10h51
  4. [JSP] Affichage selon une liste deroulante
    Par cnguyen dans le forum Servlets/JSP
    Réponses: 22
    Dernier message: 21/06/2006, 19h51
  5. [BDE] Affichage de la liste des tables et champs
    Par Isa31 dans le forum Bases de données
    Réponses: 4
    Dernier message: 26/05/2005, 11h51

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