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-Layout] sauvegarde d'un form dynamique


Sujet :

Struts 1 Java

  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 153
    Par défaut [Struts-Layout] sauvegarde d'un form dynamique
    bonjour,

    je crée plusieurs layout:text dans mon form dont le nombre est inconnu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <% 
    ArrayList donnees = (ArrayList)request.getSession(false).getAttribute("donnees");
    ArrayList values = (ArrayList)request.getSession(false).getAttribute("values");
     
    for(int i=0; i<donnees.size(); i++)
    {
    %>
    <layout:text key="<%=((Donnee)donnees.get(i)).getLibelle() %>" value="<%= ""+values.get(i) %>" >"/>
    <%
    }
    %>
    je rempli mes 2 arraylist values et donnees dans mon action

    l'utilisateur peut modifier ces données, et je bloque sur l'enregistrement de ceux-ci

    comment renvoyer les données de ces layout:text vers mon action ?

    sans utiliser la méthode : renvoyer toutes ses données en passant les id et value de chaque text dans l'url en get
    merci

  2. #2
    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
    Pour récupérer dans l'Action l'ArrayList values avec les valeurs modifiées, il faut définir l'ArrayList comme propriété de l'ActionForm et l'initialiser via le setter dans l'Action qui s'exécute avant l'affichage de la jsp.
    Ensuite, dans la jsp, tu peux utiliser le tag layout:collection pour itérer sur les deux collections donnees et values, puis un tag layout:text dans un tag layout:collectionItem, en utilisant l'index pour prendre en compte les modifications.

    Cela donnerait ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <layout:collection name="donnees" property2="values" indexId="index" styleClass="FORM">			
    	<layout:collectionItem property="libelle"/>
    	<layout:collectionItem title="">
    		<layout:text property="values[${index}]" layout="false"/>
     	</layout:collectionItem>
    </layout:collection>
    Sinon, plutôt que d'utiliser deux ArrayList, tu aurais pu constituer une ArrayList d'objets Donnee avec pour propriété libelle et valeur.

  3. #3
    Membre confirmé

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 153
    Par défaut
    merci de ta réponse, j'ai utilisé une version équivalente avec un datagrid ( huhu )

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 18/05/2009, 13h47
  2. [Struts-Layout] faire un tabbed pane dynamique
    Par Alec6 dans le forum Struts 1
    Réponses: 1
    Dernier message: 05/05/2009, 22h08
  3. Réponses: 17
    Dernier message: 26/06/2008, 16h17
  4. [débutant][Struts-Layout] titre d'une form
    Par mimil77210 dans le forum Struts 1
    Réponses: 3
    Dernier message: 19/02/2007, 14h46
  5. [struts-layout]nom properties dynamique
    Par discoboys dans le forum Struts 1
    Réponses: 1
    Dernier message: 10/02/2006, 17h00

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