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 :

collection via formulaire sous Struts


Sujet :

Struts 1 Java

  1. #1
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 26
    Par défaut collection via formulaire sous Struts
    Bonjour,


    alors voilà mon pb : je veux afficher ds un formulaire d'une jsp une liste (une collection en java) de choses que je récupère ds une base. Alors pr l'affichage pas de pb mon action enregistre ds un bean la collection, laquelle est lue par une balise iterate (tt est en struts) et tout s'affiche merveilleusement bien. Le pb c'est que je veux non seulement afficher mais aussi gérer des modifs faites par l'utilisateur. Concrètement j'affiche un input text sur chaque ligne avec l'aide la balise struts <html:text>.
    mais comment récupérer les nouvelles valeurs saisies ?? j'y arrive pas. J'aimerais éviter le javascript et aussi éviter de mettre ma collection ds l'ActionForm mais je commence à croire qu'il y a pas le choix. Si je crée un arraylist ds mon actionform et que ds mon iterate j'itère sur chaque élément de l'arraylist, est-ce que le submit du formulaire va bien prendre en compte les modifs de champs pr chaque objet de mon arraylist modifié ds mon bean actionform envoyé à la servlet ? (ohla la phrase pas claire)
    en gros je veux gérer l'afficahge et la saisie d'une collection java via des input text ds un formulaire, tout ca en struts

    merci pr vos réponses! en espérant m'être fait comprendre

  2. #2
    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 Re: collection via formulaire sous Struts
    Citation Envoyé par plaf
    Bonjour,


    alors voilà mon pb : je veux afficher ds un formulaire d'une jsp une liste (une collection en java) de choses que je récupère ds une base. Alors pr l'affichage pas de pb mon action enregistre ds un bean la collection, laquelle est lue par une balise iterate (tt est en struts) et tout s'affiche merveilleusement bien. Le pb c'est que je veux non seulement afficher mais aussi gérer des modifs faites par l'utilisateur. Concrètement j'affiche un input text sur chaque ligne avec l'aide la balise struts <html:text>.
    mais comment récupérer les nouvelles valeurs saisies ?? j'y arrive pas. J'aimerais éviter le javascript et aussi éviter de mettre ma collection ds l'ActionForm mais je commence à croire qu'il y a pas le choix. Si je crée un arraylist ds mon actionform et que ds mon iterate j'itère sur chaque élément de l'arraylist, est-ce que le submit du formulaire va bien prendre en compte les modifs de champs pr chaque objet de mon arraylist modifié ds mon bean actionform envoyé à la servlet ? (ohla la phrase pas claire)
    en gros je veux gérer l'afficahge et la saisie d'une collection java via des input text ds un formulaire, tout ca en struts

    merci pr vos réponses! en espérant m'être fait comprendre
    pour cela utilise le nested:iterate, c est la l solution ultime a ton probleme
    http://struts.apache.org/userGuide/

    et un exemple de base
    http://www.reumann.net/struts/nested.do

  3. #3
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 26
    Par défaut
    MERCI!!
    depuis mon post j'ai fait une ptite recherche sur le forum et j'ai effectivement vu que nested:iterate avait un rôle dans mon salut (ou c:forEach mais faut télécharger la librairie JSTL et ca ca me rebutait ). Mais je dois dire que ton lien est un modèle de clarté et de simplicité pr comprendre son fonctionnement!
    et une autre mini-question : logic:iterate avec une bonne utilisation de indexId ca marcherait aussi ? (ms ca m'a l'air plus compliqué)
    une dernière pr la route : est-ce que c gourmand en mémoire de stocker une collection ds une actionForm ? faut déclarer "implements Serializable" ds les objets métiers de ma collection ou c implicite ?

  4. #4
    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
    Citation Envoyé par plaf
    MERCI!!
    depuis mon post j'ai fait une ptite recherche sur le forum et j'ai effectivement vu que nested:iterate avait un rôle dans mon salut (ou c:forEach mais faut télécharger la librairie JSTL et ca ca me rebutait ). Mais je dois dire que ton lien est un modèle de clarté et de simplicité pr comprendre son fonctionnement!
    et une autre mini-question : logic:iterate avec une bonne utilisation de indexId ca marcherait aussi ? (ms ca m'a l'air plus compliqué)
    une dernière pr la route : est-ce que c gourmand en mémoire de stocker une collection ds une actionForm ? faut déclarer "implements Serializable" ds les objets métiers de ma collection ou c implicite ?
    Avec les logic:iterate j ai jamais reussi a faire des forms dynamiques et simples, par contre j ai beaucoup utilise les nested:iterate et je trouve ca vraiment genial et facile d utilisation (une fois habitue )

  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
    pour ce qui est du stockage d une collection dans un ActionForm c est equivalent (dans le cas ou tes forms sont en session) a stocker une arraylist en session, tout depend de la taille de cette derniere. tu vas pas t amuser a mettre des mega en session!!!

    De plus si ta liste n est pas liee a l utilisateur qui est connecte mais est identique pour tous les user, tu as meilleur temps de la stocker dans le scope application (via le ServletContext )

  6. #6
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 26
    Par défaut
    zut ca marche pas...
    j'ai rajouté ds mon ActionForm ("TacheForm") une propriété de type Collection avec ses accesseurs :

    private Collection lstIndicateurs = null;
    public Collection getLstIndicateurs() {
    return lstIndicateurs;
    }

    public void setLstIndicateurs(Collection c) {
    lstIndicateurs = c;
    }
    dans l'actionForm j'ai initialisé la collection lstIndicateurs avec une liste remplie d'indicateurs ds mon bean TacheForm (une tache possède plusieurs indicateurs)
    ds la jsp j'ai mis :

    <nested:iterate property="lstIndicateurs">

    <tr>
    <td width="400" class="Forminput"> <nested:write property="ind_desc"/></td>
    <td width="300" class="Forminput"> <nested:write property="uo"/></td>
    <td width="100" class="Forminput"> <nested:text property="realise" size="10" maxlength="150"/></td>
    </tr>
    </nested:iterate>
    la collection lstIndicateur possède une liste de beans de type Indicateur dt les pptés sont ind_desc, uo et realise
    avec ce code j'ai pas d'erreur mais il n'affiche aucun indicateur (alors qu'il y en a!)
    est-ce que le pb peut venir des accesseurs ou du FormBean ?
    là j'ai plus trop d'idée...

  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
    peux tu donner le code d un indicateur?

  8. #8
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 26
    Par défaut
    voici le code d'un indicateur :

    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
     
    public class Indicateur implements Serializable {
     
    	public Indicateur() {
    		super();
    	}
     
     
        private String nom = null;
        private String ind_desc = null;
        private String idc_tache = null;
        private String tache_desc = null;
        private String type_qtql = null;
        private String uo = null;
        private String realise = null;
        private String typeValid = null;
        private String indNomCache = null;
        private String aSauvegarder = null;
     
     
     
     
    	/**
             * @return
             */
    	public String getASauvegarder() {
    		return aSauvegarder;
    	}
     
    	/**
             * @return
             */
    	public String getIdc_tache() {
    		return idc_tache;
    	}
     
    	/**
             * @return
             */
    	public String getInd_desc() {
    		return ind_desc;
    	}
     
    	/**
             * @return
             */
    	public String getIndNomCache() {
    		return indNomCache;
    	}
     
    	/**
             * @return
             */
    	public String getNom() {
    		return nom;
    	}
     
    	/**
             * @return
             */
    	public String getRealise() {
    		return realise;
    	}
     
    	/**
             * @return
             */
    	public String getTache_desc() {
    		return tache_desc;
    	}
     
    	/**
             * @return
             */
    	public String getType_qtql() {
    		return type_qtql;
    	}
     
    	/**
             * @return
             */
    	public String getTypeValid() {
    		return typeValid;
    	}
     
    	/**
             * @return
             */
    	public String getUo() {
    		return uo;
    	}
     
    	/**
             * @param string
             */
    	public void setASauvegarder(String string) {
    		aSauvegarder = string;
    	}
     
    	/**
             * @param string
             */
    	public void setIdc_tache(String string) {
    		idc_tache = string;
    	}
     
    	/**
             * @param string
             */
    	public void setInd_desc(String string) {
    		ind_desc = string;
    	}
     
    	/**
             * @param string
             */
    	public void setIndNomCache(String string) {
    		indNomCache = string;
    	}
     
    	/**
             * @param string
             */
    	public void setNom(String string) {
    		nom = string;
    	}
     
    	/**
             * @param string
             */
    	public void setRealise(String string) {
    		realise = string;
    	}
     
    	/**
             * @param string
             */
    	public void setTache_desc(String string) {
    		tache_desc = string;
    	}
     
    	/**
             * @param string
             */
    	public void setType_qtql(String string) {
    		type_qtql = string;
    	}
     
    	/**
             * @param string
             */
    	public void setTypeValid(String string) {
    		typeValid = string;
    	}
     
    	/**
             * @param string
             */
    	public void setUo(String string) {
    		uo = string;
    	}
     
    }
    seules qqles pptés m'interessent (celles mentionnées précedemment)
    j'ai rajouté le implements Serializable pour tester mais ca n'a aucune influence
    par contre j'ai pu remarquer en faisant un <bean:define id="liste" property="lstIndicateurs"> ds ma jsp que l'objet liste était nul. Donc ma liste d'indicateur ds mon TacheForm est initialisée à null alors que je l'initialise correctement ds le ActionForm...
    voilà si tu peux m'aider ..
    merci pr ton aide en tt cas

  9. #9
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 26
    Par défaut
    je crois qu'il y a un pb avec mon accesseur get
    qd je fais un logic:iterate normal ca marche pas non plus il fait un javanullpointerexception
    at java.util.Hashtable.get(Hashtable.java)
    est-ce que le "extends ActionForm" ds mon formbean ne m'oblige pas à mettre que des attributs String ?

  10. #10
    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
    Citation Envoyé par plaf
    est-ce que le "extends ActionForm" ds mon formbean ne m'oblige pas à mettre que des attributs String ?
    non pas du tout!!! Un form peut etre apparente (de maniere grossiere) a un javabean en scope, tu peux y mettre ce que tu veux...

    Par contre peux tu afficher le code ou tu utilise cette methode pour populer ton form
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     setLstIndicateurs(Collection c);

  11. #11
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 26
    Par défaut
    J'AI TROUVE!!
    bon je suis vraiment un boulet... j'avais oublié de mettre la librairie nested ds les déclarations de la jsp ... (faut dire que tomcat me le disait pas ds ses erreurs, le préfixe nested ne le genait pas)
    dslé de t'aoir fait perdre du temps pour ca
    mais tout n'est pas tout gagné pr autant : mntnt tout s'affiche bien en utilisant les balises nested ms le submit provoque une erreur sur lea méthode populate :
    1ère erreur : un truc sur getIndexedProperty, j'ai rajouté en hidden ma property clé primaire ("nom") en indexed="true" ds la jsp et ca semble avoir résolu le pb. Faut forcément un paramètre indexé ??
    2ème erreur : IndexOutOFBoundException alors là hje sèche ms j'ai cru lire sur un post du forum que pr que le submit marche faut que le formebean soit enregistré en scope session et non request, c'est forcé ?

    voilà encore dslé pr cet oubli regrettable, ms les erreurs les plus longues à trouver st souvent les plus bêtes... (c la morale que j'en tire du moins)

  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
    redonne voir ton code actueld
    de ta jsp
    de ton indicateur

  13. #13
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 26
    Par défaut
    ma jsp :

    <nested:iterate property="lstIndicateur">

    <tr>
    <nested:hidden property="nom" indexed="true"/>
    <td width="400" class="Forminput"> <nested:write property="ind_desc"/></td>
    <td width="300" class="Forminput"> <nested:write property="uo"/></td>
    <td width="100" class="Forminput"> <nested:text property="realise" size="10" maxlength="150"/></td>
    </tr>

    </nested:iterate>
    mon FormBean :
    private Vector lstIndicateur = null;
    public Vector getLstIndicateur() {
    return (Vector)this.lstIndicateur;
    }

    public Object getLstIndicateur(String key){
    Integer k = new Integer(key);
    return lstIndicateur.elementAt(k.intValue());
    }
    /**
    * @param vector
    */
    public void setLstIndicateur(Vector v) {
    this.lstIndicateur = v;
    }
    l'accesseur avec la key ne sert surement à rien

    classe Indicateur :
    la même qu'avant, toute simple avec des propriétés en String et des get et des set (je l'ai copiée collé ds un post plus haut, elle a pas bougé)

    avec ce code l'affichage fonctionne bien

  14. #14
    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
    en fait affiche nous le code de ta classe indicateur :o

  15. #15
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 26
    Par défaut
    okok mais comme je l'ai dit j'y ai pas touché c la même que tt à l'heure. Je remet le code :

    public class Indicateur implements Serializable {

    public Indicateur() {
    super();
    }


    private String nom = null;
    private String ind_desc = null;
    private String idc_tache = null;
    private String tache_desc = null;
    private String type_qtql = null;
    private String uo = null;
    private String realise = null;
    private String typeValid = null;
    private String indNomCache = null;
    private String aSauvegarder = null;




    /**
    * @return
    */
    public String getASauvegarder() {
    return aSauvegarder;
    }

    /**
    * @return
    */
    public String getIdc_tache() {
    return idc_tache;
    }

    /**
    * @return
    */
    public String getInd_desc() {
    return ind_desc;
    }

    /**
    * @return
    */
    public String getIndNomCache() {
    return indNomCache;
    }

    /**
    * @return
    */
    public String getNom() {
    return nom;
    }

    /**
    * @return
    */
    public String getRealise() {
    return realise;
    }

    /**
    * @return
    */
    public String getTache_desc() {
    return tache_desc;
    }

    /**
    * @return
    */
    public String getType_qtql() {
    return type_qtql;
    }

    /**
    * @return
    */
    public String getTypeValid() {
    return typeValid;
    }

    /**
    * @return
    */
    public String getUo() {
    return uo;
    }

    /**
    * @param string
    */
    public void setASauvegarder(String string) {
    aSauvegarder = string;
    }

    /**
    * @param string
    */
    public void setIdc_tache(String string) {
    idc_tache = string;
    }

    /**
    * @param string
    */
    public void setInd_desc(String string) {
    ind_desc = string;
    }

    /**
    * @param string
    */
    public void setIndNomCache(String string) {
    indNomCache = string;
    }

    /**
    * @param string
    */
    public void setNom(String string) {
    nom = string;
    }

    /**
    * @param string
    */
    public void setRealise(String string) {
    realise = string;
    }

    /**
    * @param string
    */
    public void setTache_desc(String string) {
    tache_desc = string;
    }

    /**
    * @param string
    */
    public void setType_qtql(String string) {
    type_qtql = string;
    }

    /**
    * @param string
    */
    public void setTypeValid(String string) {
    typeValid = string;
    }

    /**
    * @param string
    */
    public void setUo(String string) {
    uo = string;
    }

    }
    en fait j'ai trouvé sur le forum une personne qui avait exactement le même pb que moi :

    http://www.developpez.net/forums/vie...struts+iterate

    sa facon de résoudre le pb est pas propre comme il le dit ms g testé et ca marche. Si t'as une autre solution je suis preneur (à part mettre le formbean en scope session).
    en tt cas tu m'as été d'une grde aide, je t'en remercie.

  16. #16
    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
    as tu mis ton form dans le scope session finalement?

  17. #17
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 26
    Par défaut
    je vais essayer d'éviter parce que en fait je modifie un site existant qui fonctionnait avant en scope request et je sais pas si je peux me permettre de passer en session, ne maitrisant pas du tt l'impact que ca pourrait avoir en terme de performances/temps de réponse ou autre...
    dc pr l'instant j'utilise la solution qui consiste à initialiser un certain nbre d'indicateurs vides

  18. #18
    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
    tu peux le faire juste pour cette action pour tester. Histoire de voir si le probleme viens de la car a vu d oeil j ai vraiment l impression que ton code est correct

  19. #19
    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
    Salut !

    Il me semble que si tu utilises les tags indexés, tu dois coder ceci dans ton 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
     
    private ArrayList indicateurs; 
     
    public ArrayList getIndicateurs()
    { 
    return indicateurs; 
    } 
     
    public void setIndicateurs(ArrayList list)
    { 
    this.indicateurs = list; 
    } 
    public Indicateur getIndicateur(int i)
    { 
    return (Indicateur) indicateurs.get(i);; 
    } 
    public Indicateur setIndicateur(int i,Indicateur indicateur)
    {
    indicateurs.set(i,indicateur);
    }
    Je te donne la solution avec une ArrayList parce que je n'utilise jamais les Vector.

    Je ne connais pas le tag nested:iterate mais ce qui me surprend, c'est qu'on ne code nulle part une référence à la classe Indicateur.

    Si on codait un logic:iterate, on aurait ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <logic:iterate id="indicateur" property="indicateurs" name="yourForm">
    <html:hidden name="indicateur" property="nom" indexed="true"/>
    </logic:iterate>
    Donc dans le nested:iterate, il y a peut-être une norme sur les noms des propriétés.

    Ne serait-ce pas quelque chose du genre ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <nested:iterate property="indicateurs">
    <tr>
    <nested:hidden property="nom" indexed="true"/>
    ...
    </tr>
    </nested:iterate>
    Et il irait automatiquement chercher la propriété "nom" de la classe Indicateur parce que la collection s'appelle indicateurs avec un "s" ?

  20. #20
    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
    Citation Envoyé par c_nvy
    Salut !

    Je ne connais pas le nested:iterate mais ce que je sais, c'est que si tu utilises les tags indexés, tu dois coder ceci dans ton 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
     
    private ArrayList lstIndicateur; 
     
    public ArrayList getLstIndicateur()
    { 
    return lstIndicateur; 
    } 
     
    public void setLstIndicateur(ArrayList list)
    { 
    this.lstIndicateur = list; 
    } 
    public Indicateur getIndicateur(int i)
    { 
    return (Indicateur) lstIndicateur.get(i);; 
    } 
    public Indicateur setIndicateur(int i,Indicateur indicateur)
    {
    lstIndicateur.set(i,indicateur);
    }
    Je te donne la solution avec une ArrayList parce que je n'utilise jamais les Vector.

    Après, faut vérifier que les paramètres que tu codes dans le nested:iterate sont correctes.

    Ce ne serait pas quelque chose du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <nested:iterate id="indicateur" property="lstIndicateur">
    <tr>
    <nested:hidden name="indicateur" property="nom" indexed="true"/>
    ...
    </tr>
    </nested:iterate>
    Lorsque tu imbriques des nested tu n est pas obliger d'utiliser l'attribut name.

    Par contre je ne connaissais pas du tout les indexed property, ca a l'ai cool.

    Enfin je pense que plaf a plutot interet (pour une raison de performance) a utiliser des ArrayList plutot que des Vector (dans un context non multithreade en tout cas)

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. Envoi données via formulaire sous wordpress
    Par panda25 dans le forum Langage
    Réponses: 7
    Dernier message: 24/10/2014, 09h14
  2. [XL-2007] Suppression lignes excel via formulaire sous vba
    Par nanousik dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/10/2012, 07h00
  3. Réponses: 6
    Dernier message: 31/03/2010, 00h09
  4. Ouvrir un Formulaire via un sous-formulaire
    Par pouii dans le forum IHM
    Réponses: 8
    Dernier message: 17/04/2008, 15h52
  5. message box via un sous formulaire
    Par fa310428 dans le forum IHM
    Réponses: 8
    Dernier message: 02/10/2007, 14h31

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