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 :

[ Struts ][ ArrayList ]Probleme de recuperation du contenu d'un ArrayList


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 21
    Par défaut [ Struts ][ ArrayList ]Probleme de recuperation du contenu d'un ArrayList
    Bonjour,

    J'initialise un ArrayList dans une classe Action:
    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
    import java.util.ArrayList;
     
    public class MaClasse extends Action {
        public ActionForward execute(...) {
            try {
                ArrayList alCol = new ArrayList();
                alCol.add("COL1");
                alCol.add("COL2");
                alCol.add("COL3");
                alCol.trimToSize();
                request.setAttribute("colReq", alCol);
            ...
     
            return mapping.findForward("showResult");
        }
    }
    La page JSP affichée après l'exécution est la suivante:
    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="/WEB-INF/struts-bean.tld" prefix="bean" %>
    <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
     
    <html>
        <head>
            <title>Affichage ArrayList</title>
        </head>
     
        <body>
            <div>
                <table>
                     <logic:iterate id="titres" name="colReq">
                         <tr>
                             <logic:iterate id="intitule" name="titres">
                                 <td><bean:write name="intitule" /></td>
                             </logic:iterate>
                         </tr>
                     </logic:iterate>
                 </table>
             </div>        
        </body>
    </html>
    L'affichage de la JSP provoque l'erreur suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     org.apache.jasper.JasperException: Cannot create iterator for this collection
    Par contre, si je remplace le code de ma classe:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                request.setAttribute("colReq", alCol);
    par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
                 ArrayList al = new ArrayList();
                 al.add(alCol);
                 request.setAttribute("colReq", al);
    Ca fonctionne correctement...

    Qu'est-ce que le fait de copier mon ArrrayList dans un autre change ?

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 65
    Par défaut
    Il me semble que dans ta seconde méthode tu ajoutes un ArrayList dans un ArrayList.

    Essaye plutôt de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <logic:iterate id="titre" name="titres">
        <bean:write name="titre" />
    </logic:iterate>
    edit : le code précédent dans la JSP avec la première méthode dans l'Action

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 21
    Par défaut
    Effectivement je créais un ArrayList et j'essayais de lire un ArrayList d'ArrayList...

    J'ai donc modifié le code de ma JSP de la façon suivante:
    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
    <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
    <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
     
    <html>
        <head>
            <title>Affichage ArrayList</title>
        </head>
     
        <body>
            <div>
                <table>
                    <tr>
                        <logic:iterate id="titres" name="colReq">
                            <td><bean:write name="titres" /></td>
                        </logic:iterate>
                    </tr>
                </table>
            </div>        
        </body>
    </html>
    Merci !

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

Discussions similaires

  1. Réponses: 11
    Dernier message: 24/02/2010, 15h07
  2. [Struts] Probleme de recuperation de donnees
    Par DanZzz dans le forum Struts 1
    Réponses: 1
    Dernier message: 12/05/2006, 08h39
  3. [VB6] [Système] Récupérer le contenu d'une fenêtre DOS
    Par Nounours666 dans le forum VB 6 et antérieur
    Réponses: 16
    Dernier message: 18/11/2004, 16h38
  4. [Struts][javascript]Probleme de 'id' dans un <html:hidden
    Par FreshVic dans le forum Struts 1
    Réponses: 5
    Dernier message: 11/02/2004, 10h57
  5. TThread: probleme de recuperation du Handle
    Par code34 dans le forum Langage
    Réponses: 8
    Dernier message: 07/09/2003, 03h04

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