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

Taglibs Java Discussion :

ArrayList en session et c:forEach [JSTL]


Sujet :

Taglibs Java

  1. #1
    Membre confirmé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Points : 558
    Points
    558
    Par défaut ArrayList en session et c:forEach
    Bonjour
    J'ai un ArrayList en session ('lesServeurs) et j'aimerai afficher une propriété des objets dans une boucle c:forEach...
    J'ai un probleme de cast
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <c:set var="p" value="${sessionScope['lesServeurs']}"/>
     
    <c:forEach var="entry" items="${p.nom}" >
    	${entry}<br/>
    </c:forEach>
    merci de votre aide
    La patience est un arbre aux racines amères, mais aux fruits ci-doux.

  2. #2
    Membre éprouvé
    Avatar de hasalex
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 879
    Points : 1 269
    Points
    1 269
    Par défaut
    Peux-tu nous préciser ton problème de cast (stack trace) ?

    On peut commencer à deviner le problème : tu accèdes à une propriété nom sur une list, ce qui n'existe pas. Il faudrait que tu itères d'abord sur p, puis que tu affiches entry.nom.

  3. #3
    Membre confirmé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Points : 558
    Points
    558
    Par défaut
    Avec ce code j'ai comme résultat ${entry.nomServeurTampon} qui s'écrit sur ma page 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
     
    <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 
     
    <c:set var="p" value="${sessionScope['lesServeur']}"/>
     
    <c:forEach var="entry" items="${p}" >
    	${entry.nomServeur}<br/>
    </c:forEach>
     
    //Ancien code qui marche
    <%
    ArrayList lesServeurs = (ArrayList)session.getAttribute("lesServeur");
    //out.print(lesServeurs.size());
    for (Iterator it = lesServeurs.iterator(); it.hasNext();){
        Serveur Serveur = (Serveur)it.next();
        out.println(Serveur.getNomServeur() +
                    "*******" + Serveur.getAdresseServeur()+
                    "*******" + Serveur.getCompteServeur() + 
                    "*******" + Serveur.getMotDePasseServeur() +
                    "*******" + Serveur.getRepertoireServeur() +  "<br>");
     }
    %>
    merci de ton aide
    La patience est un arbre aux racines amères, mais aux fruits ci-doux.

  4. #4
    Membre éprouvé
    Avatar de hasalex
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 879
    Points : 1 269
    Points
    1 269
    Par défaut
    Peux-tu me donner le début de ton fichier web.xml ; DTD, XSD et balise webapp ?

  5. #5
    Membre éprouvé
    Avatar de hasalex
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 879
    Points : 1 269
    Points
    1 269
    Par défaut
    Autre remarque, tu peux faire directement appel à lesServeur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <c:forEach var="entry" items="${lesServeur}" >
    	${entry.nomServeur}<br/>
    </c:forEach>
    Mais je pense que ça ne changera rien. Approfondis plutot la piste du web.xml.

  6. #6
    Membre confirmé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Points : 558
    Points
    558
    Par défaut
    je pense que tu as raison doit manquer un truc dans mon web.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?xml version="1.0" encoding="UTF-8"?>
     
    <!DOCTYPE web-app 
      PUBLIC '-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN'
             'http://java.sun.com/j2ee/dtds/web-app_2.3.dtd'>
     
    <web-app> 
    <filter>
        <filter-name>ApplicationFilter</filter-name>
    ...et autres mapping
    en rajoutant <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlnssi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    en arretant tomcat ça n'a rien changé...
    La patience est un arbre aux racines amères, mais aux fruits ci-doux.

  7. #7
    Membre confirmé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Points : 558
    Points
    558
    Par défaut
    ce que j'avais oublier c'était de :
    Il faut copier les fichiers .tld dans le répertoire WEB-INF ou un de ses sous répertoires. Dans la suite de l'exemple, ces fichiers ont été placés le répertoire /WEB-INF/tld.

    Il faut ensuite déclarer les bibliothèques à utiliser dans le fichier web.xml du répertoire WEB-INF comme pour toute bibliothèque de tags personnalisés.
    Merci
    La patience est un arbre aux racines amères, mais aux fruits ci-doux.

  8. #8
    Membre éprouvé
    Avatar de hasalex
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 879
    Points : 1 269
    Points
    1 269
    Par défaut
    Et bien voilà une bonne raison pour que ça ne marche pas.

    Remplace

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <!DOCTYPE web-app 
      PUBLIC '-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN'
             'http://java.sun.com/j2ee/dtds/web-app_2.3.dtd'>
    <web-app>
    Par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
    Explication : ton application fonctionne en webapp 2.3 qui ne supportait l'EL (notation avec ${ }) que dans les taglibs. A partir de 2.4, tu peux utiliser l'EL directement dans la JSP.

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

Discussions similaires

  1. Une arrayList en session
    Par Caillou63 dans le forum VB.NET
    Réponses: 5
    Dernier message: 11/12/2008, 08h59
  2. Utilisation de foreach avec les sessions sous PHP5
    Par frochard dans le forum Langage
    Réponses: 1
    Dernier message: 11/11/2006, 01h14
  3. mise en session Arraylist
    Par dude666 dans le forum JSF
    Réponses: 2
    Dernier message: 30/06/2006, 12h52
  4. [C#] ArrayList dans une variable de session ?
    Par Oberown dans le forum ASP.NET
    Réponses: 1
    Dernier message: 12/12/2005, 15h50
  5. [C#] ArrayList, foreach et suppression
    Par lalystar dans le forum Windows Forms
    Réponses: 3
    Dernier message: 06/04/2005, 11h42

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