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] un champs modifiable dans une collection


Sujet :

Struts 1 Java

  1. #1
    Membre régulier
    Inscrit en
    Juin 2008
    Messages
    394
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 394
    Points : 73
    Points
    73
    Par défaut [Struts-Layout] un champs modifiable dans une collection
    bonjour,

    j'ai une collection dans ma jsp voici son code :
    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
     
        <layout:collection name="approbationForm" property="resulrang"  styleClass="SCROLL" styleClass="FORM" width="1080" height="180">
                <layout:collectionItem title="ARTICLE" property="article"></layout:collectionItem>
               <layout:collectionItem title="PROFIL" property="profil"></layout:collectionItem>
              <layout:collectionItem title="HLR" property="hlr"></layout:collectionItem>
               <layout:collectionItem title="ACTIVATION" property="active"></layout:collectionItem>
               <layout:collectionItem title="PACKAGING" property="packag"></layout:collectionItem>
               <layout:collectionItem title="QTE" property="qte"></layout:collectionItem> 
               <layout:collectionItem title="QTE valide" property="qtevalide"></layout:collectionItem>         
               <layout:collectionItem title="+" property="ajouter" action="/approbation.do?hidden=ajouter" paramId="art,prof,qt" paramProperty="art,prof,qt">
                 <center> <layout:img srcName="add.GIF" border="0"></layout:img> </center>
               </layout:collectionItem>
            </layout:collection>
     
     
      <layout:submit onclick="setHidden('valider')">valider</layout:submit>
    je l'affiche la 1ere fois remlise depuis ma base sauf le champs "QTE valide" que je laisse vide
    ensuite je saisis une valeur dans ce champs(dans chaque ligne de la collection) et quand je clique sue le button "valider" je veux récuperer les valeurs de la collection y compris les champs que j'ai saisi moi meme

    je veux savoir comment:
    1. déclarer ce champs dans la collection?
    2.récuperer sa valeur ?

    d'habitude pour récupere les information de la collection je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    listt=transfertForm.getListajouter();
    for (int i=0;i<listt.size();i++)
    				{
    					System.out.println(i);
    					Rang3 rn = (Rang3)listt.get(i); 
     
     
    					String prof=rn.getProff();
    					System.out.println(prof);
    					String sta=rn.getStt();
    					System.out.println(sta);
    					String ind=rn.getEndd();
    					System.out.println(ind);

    merci de m'aider

  2. #2
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    Ajoute l'attribut indexId dans le tag layout:collection et pour le champ à saisir, mets un tag layout:text dans un tag layout:collectionItem comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <layout:collection name="approbationForm" property="resulrang" indexId="index" styleClass="SCROLL" styleClass="FORM" width="1080" height="180">
               <layout:collectionItem title="ARTICLE" property="article"></layout:collectionItem>
               <layout:collectionItem title="PROFIL" property="profil"></layout:collectionItem>
               <layout:collectionItem title="HLR" property="hlr"></layout:collectionItem>
               <layout:collectionItem title="ACTIVATION" property="active"></layout:collectionItem>
               <layout:collectionItem title="PACKAGING" property="packag"></layout:collectionItem>
               <layout:collectionItem title="QTE" property="qte"></layout:collectionItem> 
               <layout:collectionItem title="QTE valide">
                  <layout:text property="resulrang[${index}].qtevalide" layout="false"/>
               </layout:collectionItem>
               <layout:collectionItem title="+" property="ajouter" action="/approbation.do?hidden=ajouter" paramId="art,prof,qt" paramProperty="art,prof,qt">
                 <center> <layout:img srcName="add.GIF" border="0"></layout:img> </center>
               </layout:collectionItem>
    </layout:collection>
    et lorsque tu soumettras le formulaire, la collection contiendra les valeurs modifiées.

  3. #3
    Membre régulier
    Inscrit en
    Juin 2008
    Messages
    394
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 394
    Points : 73
    Points
    73
    Par défaut
    j'ai modifié mon code comme vous m'avez indiqué
    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
     
    <layout:collection name="approbationForm" property="resulrang" indexId="index" styleClass="SCROLL" styleClass="FORM" width="1080" height="180">
               <layout:collectionItem title="ARTICLE" property="article"></layout:collectionItem>
               <layout:collectionItem title="PROFIL" property="profil"></layout:collectionItem>
               <layout:collectionItem title="HLR" property="hlr"></layout:collectionItem>
               <layout:collectionItem title="ACTIVATION" property="active"></layout:collectionItem>
               <layout:collectionItem title="PACKAGING" property="packag"></layout:collectionItem>
               <layout:collectionItem title="QTE" property="qte"></layout:collectionItem> 
               <layout:collectionItem title="QTE valide">
                  <layout:text property="resulrang[${index}].qtevalide" layout="false"/>
               </layout:collectionItem>
               <layout:collectionItem title="+" property="ajouter" action="/approbation.do?hidden=ajouter" paramId="art,prof,qt" paramProperty="art,prof,qt">
                 <center> <layout:img srcName="add.GIF" border="0"></layout:img> </center>
               </layout:collectionItem>
    </layout:collection>
    et j'ai déclaré les getter et les setter du property "qtevalide" dans le form "approbationForm" qui contient la collection

    mais j'ai l'érreur 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
     
     
     
     
    No getter method available for property resulrang[0].qtevalide for bean under name org.apache.struts.taglib.html.BEAN
    	at fr.improve.struts.taglib.layout.util.LayoutUtils.getBeanFromPageContext(LayoutUtils.java:217)
    	at fr.improve.struts.taglib.layout.field.AbstractFieldTag.getFieldValue(AbstractFieldTag.java:194)
    	at fr.improve.struts.taglib.layout.field.TextFieldTag.getFieldValue(TextFieldTag.java:46)
    	at fr.improve.struts.taglib.layout.field.AbstractModeFieldTag.doStartLayoutTag(AbstractModeFieldTag.java:229)
    	at fr.improve.struts.taglib.layout.LayoutTagSupport.doStartTag(LayoutTagSupport.java:34)
    	at org.apache.jsp.forms.ordretrans_jsp._jspx_meth_layout_005ftext_005f3(ordretrans_jsp.java:2940)
    	at org.apache.jsp.forms.ordretrans_jsp._jspx_meth_layout_005fcollectionItem_005f8(ordretrans_jsp.java:2910)
    	at org.apache.jsp.forms.ordretrans_jsp._jspx_meth_layout_005fcollection_005f0(ordretrans_jsp.java:2713)
    	at org.apache.jsp.forms.ordretrans_jsp._jspx_meth_layout_005fpager_005f0(ordretrans_jsp.java:2639)
    	at org.apache.jsp.forms.ordretrans_jsp._jspx_meth_logic_005fnotEmpty_005f0(ordretrans_jsp.java:2605)
    	at org.apache.jsp.forms.ordretrans_jsp._jspx_meth_layout_005fform_005f0(ordretrans_jsp.java:2138)
    	at org.apache.jsp.forms.ordretrans_jsp._jspService(ordretrans_jsp.java:1060)

  4. #4
    Membre régulier
    Inscrit en
    Juin 2008
    Messages
    394
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 394
    Points : 73
    Points
    73
    Par défaut
    à titre d'information je remplis ma collection comme suit

    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
     
    rs=st.executeQuery("");
    while (rs.next())
    		{
     
    			System.out.println("["+rs.getString(1)+"],["+rs.getString(2)+"],["+rs.getString(3)+"],["+rs.getString(4)+"],["+rs.getString(5)+"],["+rs.getString(6)+"],["+rs.getString(7)+"],["+rs.getString(8)+"],["+rs.getString(9)+"]");
    			Rang rang=new Rang();
     
    			rang.setArticle(rs.getString(1).trim());
    			rang.setProfil(rs.getString(2).trim());
     
    				rang.setStart(rs.getString(3).trim());
     
    				rang.setEnd(rs.getString(4).trim());
    			rang.setActive(rs.getString(6).trim());
    			rang.setPackag(rs.getString(5).trim());
    			rang.setQte(rs.getString(8).trim());
    			rang.setHlr(rs.getString(7).trim());
     
    			rang.setArt(rs.getString(1).trim());
    			rang.setProf(rs.getString(2).trim());
    			rang.setSt(rs.getString(3).trim());
    			rang.setNd(rs.getString(4).trim());
    			rang.setQt(rs.getString(8).trim());
     
     
     
     
     
    			list.add(rang);
    		}
     
    approbationForm.setResulrang(list);

  5. #5
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    Le tag layout:collection est-il dans un tag layout:form ?

  6. #6
    Membre régulier
    Inscrit en
    Juin 2008
    Messages
    394
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 394
    Points : 73
    Points
    73
    Par défaut
    oui Le tag layout:collection est dans un tag layout:form

  7. #7
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    Et l'Action précisée dans l'attribut action du tag layout:form est-elle bien liée au form-bean approbationForm ?

  8. #8
    Membre régulier
    Inscrit en
    Juin 2008
    Messages
    394
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 394
    Points : 73
    Points
    73
    Par défaut
    oui elle l'est
    et les getter et setter du property du champs "qtevalide" je les déclare dans le form "approbationForm" ou bien dans le bean"Rang" avec quoi je remplis ma collection comme les autres property de la collection ??

  9. #9
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    Le getter et setter sur la propriété qtevalide doivent être dans le bean Rang.
    Et dans l'ActionForm, il doit y avoir getter et setter sur la collection resulrang.

  10. #10
    Membre régulier
    Inscrit en
    Juin 2008
    Messages
    394
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 394
    Points : 73
    Points
    73
    Par défaut
    je les ai déclaré dans le bean"Rang" et ça marche bien

    c_nvy
    toujours vous me sauvez la vie

  11. #11
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    De rien.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 03/03/2010, 13h29
  2. Réponses: 2
    Dernier message: 10/02/2009, 21h35
  3. un champs modifiable dans une collection
    Par john_wili dans le forum Frameworks Web
    Réponses: 0
    Dernier message: 05/02/2009, 18h52
  4. [Struts-Layout] un champ modifiable dans une collection
    Par john_wili dans le forum Struts 1
    Réponses: 6
    Dernier message: 14/12/2008, 19h02
  5. Réponses: 3
    Dernier message: 01/08/2008, 13h38

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