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]Liste dans un formulaire


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 882
    Par défaut [STRUTS]Liste dans un formulaire
    Bonjour, supposons, par exemple, que je veuille afficher dans une Jsp (a l aide de Struts) l historique d un utilisateur (ses adresses).

    Maintenant, supposons que une adresse soit un bean ('addressBean') composé de la rue, cp, ville, etc.... Puis je avoir une liste de 'addressBean' dans mon ActionForm, par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    private ArrayList addressBeanAL = null;
     
    public ArrayList getAddressBeanAL(){
    return this.addressBeanAL;
    }
     
    public void getAddressBeanAL(ArrayList addressBeanAL){
    this.adressBeanAL = addressBeanAL;
    }
    Et les afficher ensuite dans ma jsp via un tag logic:iterate...

    Merci d avance a tous

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 29
    Par défaut
    Bonjour,

    oui aucun problème.

    Moi j'utilise souvent la taglib c.tld et j'affiche mes listes avec:

    <c:forEach items="${list}" var="item" >
    //traitement sur le item
    </c:foreach>

    Ensuite tout dépend de ce que tu veux faire.

    Jérôme

  3. #3
    Membre émérite

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 882
    Par défaut
    et en mode edition, ie si je veux que le user modifie UN champs d UN bean adresse, comment lier le champs <html:text> avec la bonne property du bon bean???

    Je ne vois pas comment le mapping va etre fait

    Merci

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 29
    Par défaut
    Par exemple,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <c:forEach items="${maForm.addressBeanAl}" var="address" varStatus="status" >
          <html:text property="(maForm.address(${status.count}).street"></html:text>
    </c:foreach>

    et dans ta form tu fais une méthode :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public Object getAddress(String key) {
       return myAddressList.get(new Integer(key).intValue())
    }
    et truc du genre devrai fonctionner.
    Désolé je n'ai pas tester, mais c'est grosso modo la façon dont je gere ce type de cas.



    [/code]

  5. #5
    Membre émérite

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 882
    Par défaut
    Merci jeje du coup de pouce, je vais tester ça et je te tiens au courant

  6. #6
    Membre émérite

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 882
    Par défaut
    ou puis je trouver la derniere version de la tag library c.tld car dans la mienne, il n y a pas d attribut item

  7. #7
    Membre émérite

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 882
    Par défaut
    Visiblement c inclu dans la j2ee 1.4. On peut aussi telecharger ça sur
    http://java.sun.com/webservices/down...vicespack.html

  8. #8
    Membre émérite

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 882
    Par défaut
    Bon ben j ai une belle erreur, voici mon code;

    ActionForm
    -------------
    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
     
        private ArrayList materielRemisAL = null;
     
        public Object getMateriel(String key) { 
            return materielRemisAL.get(new Integer(key).intValue());
        }
     
     
        //***************************************************
        //
        //Getters and setters
        //
        //***************************************************
        /**
         * @return Returns the materielRemisAL.
         */
        public ArrayList getMaterielRemisAL() {
            return materielRemisAL;
        }
        /**
         * @param materielRemisAL The materielRemisAL to set.
         */
        public void setMaterielRemisAL(ArrayList materielRemisAL) {
            this.materielRemisAL = materielRemisAL;
        }
    le bout de code dans ma jsp
    ---------------------------------
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    			<c:forEach items="${MaterielRemisForm.materielRemisAL}" var="materiel" varStatus="status"> 
    	      	ID = <html:text property="(MaterielRemisForm.materiel(${status.count}).id"></html:text> 
    	      	Description = <html:text property="(MaterielRemisForm.materiel(${status.count}).description"></html:text> 
    			</c:forEach>
    et voici mon erreur, le getter n est pas trouve
    -----------------------------------------------------
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    javax.servlet.jsp.JspException: ServletException in '/pages/tiles/materielremis/editcontent.jsp': No getter method for property (materiel(${status.count}).id of bean org.apache.struts.taglib.html.BEAN
    Je ne vois pas ou est mon erreur

  9. #9
    Membre émérite

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 882
    Par défaut
    J ai oublier de mettre le code du bean que je met dans mon array list
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    public class MaterielBean implements Serializable{
     
        private Long id = null;
        private String description = "";
     
     
     
     
        //********************************************************
        //
        //Getters and setters
        //
        //********************************************************
        /**
         * @return Returns the description.
         */
        public String getDescription() {
            return description;
        }
        /**
         * @param description The description to set.
         */
        public void setDescription(String description) {
            this.description = description;
        }
        /**
         * @return Returns the id.
         */
        public Long getId() {
            return id;
        }
        /**
         * @param id The id to set.
         */
        public void setId(Long id) {
            this.id = id;
        }
    }

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 29
    Par défaut
    As tu fais ta méthode

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Object getMateriel(String key) {
        return laListe.get(key); 
    }

  11. #11
    Membre émérite

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 882
    Par défaut
    Oui, je l ai faite

  12. #12
    Membre émérite

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 882
    Par défaut
    J ai une meilleure solution je pense de cette maniere la, tout marche a merveille
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
            <nested:iterate property="materielRemisAL">
                ID: 
                <nested:text property="id"/>
                Description: 
                <nested:text property="description"/>
            </nested:iterate>

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 29
    Par défaut
    Ah oui bien joué,

    je me rappelais même plus de cette tag lib "nested"

    Est ce que le "el" est supporté ?

    Car il me semble que quand j'avais commencé mon appli, le el n'existait pas pour le nested et le tiles . Donc j'avais oublié cette taglib ;-)


    @+

  14. #14
    Membre confirmé
    Inscrit en
    Juin 2003
    Messages
    156
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 156
    Par défaut
    Le topic est vieux mais la problématique encore d'actualité !

    Techniquement, ça marche... Mais deux remarques :

    - je pensais qu'on ne pouvait mettre que des String et des String[] dans les ActionForm. C'est pê une fausse bonne pratique.

    - les beans contenus dans ta collection de beans sont des objets métiers. N'est-ce pas génant de les retrouver dès les JSP et les ActionForms ?

    Merci d'avance pour vos avis, Frédéric

  15. #15
    Membre confirmé
    Inscrit en
    Juin 2003
    Messages
    156
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 156
    Par défaut
    Dernière question...

    Comment est pris en compte l'affichage dans la JSP ?? Je veux dire que si on a une date, un long, un vector ou je ne sais quoi dans les types des attributs de la liste de beans, comment la donnée est-elle affichée ? Le toString() de base sur une date, ça donne un peu n'importe quoi pour ne citer que cet exemple !!

    : :

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 16/09/2011, 14h38
  2. Bug Struts sur les listes dans un formulaire ?
    Par tite_mushu dans le forum Struts 1
    Réponses: 4
    Dernier message: 10/02/2011, 09h58
  3. [Struts-Layout] deux listes dans un formulaire
    Par pigeon11 dans le forum Struts 1
    Réponses: 1
    Dernier message: 28/09/2007, 09h54
  4. Critère de requête avec une zone de liste dans un formulaire
    Par Dehez dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 19/06/2006, 12h49
  5. Réponses: 5
    Dernier message: 18/10/2005, 14h09

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