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 champ 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 champ modifiable dans une collection
    j'ai une collection 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
     
     
               <layout:collection name="reservationForm" property="reserv"  styleClass="SCROLL" styleClass="FORM" width="900" height="180">
               <layout:collectionItem title="WAREHOUSE" property="whs" sortable="true"></layout:collectionItem>
             <layout:collectionItem title="ARTICLE" property="art" sortable="true"></layout:collectionItem>
                <layout:collectionItem title="PROFIL" property="prof" sortable="true"></layout:collectionItem>
         <layout:collectionItem title="HLR" property="hlr" sortable="true"></layout:collectionItem>
                <layout:collectionItem title="PQ" property="pq" sortable="true"></layout:collectionItem>
                  <layout:collectionItem title="activation" property="activ" sortable="true"></layout:collectionItem>
               <layout:collectionItem title="packaging" property="pack" sortable="true"></layout:collectionItem>
               <layout:collectionItem title="QTE" property="qte" sortable="true"></layout:collectionItem>         
               <layout:collectionItem title="+" property="ajouter" action="/reservation.do?hidden=afficher" paramId="article,qute,whss,hllr,pqq,prff" paramProperty="article,qute,whss,hllr,pqq,prff">
                 <center> <layout:img srcName="add.GIF" border="0"></layout:img> </center>
               </layout:collectionItem>
            </layout:collection>
    quand je clique sur le collection item"ajouter",je récupèr une ligne de cette collection et je la mis dans une autre collection 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
     
     <layout:collection name="reservationForm" property="reserv2" indexId="index" styleClass="SCROLL" styleClass="FORM" width="800" height="120">
                <layout:collectionItem title="WAREHOUSE" property="wh" sortable="true"></layout:collectionItem> 
                <layout:collectionItem title="ARTICLE" property="aa" sortable="true"></layout:collectionItem>
               <layout:collectionItem title="PROFIL" property="pp" sortable="true"></layout:collectionItem>  
               <layout:collectionItem title="HLR" property="hlr2" sortable="true"></layout:collectionItem>
                <layout:collectionItem title="PQ" property="pq2" sortable="true"></layout:collectionItem>        
                  <layout:collectionItem title="QTE ">
                  <layout:text property="reserv2[${index}].qt" layout="false"/>
               </layout:collectionItem>
              <layout:collectionItem title="X" property="retirer" action="/reservation.do?hidden=Retirer" paramId="aaa,qtt,whs,ppp,hllr2,pqq2" paramProperty="aaa,qtt,whs,ppp,hllr2,pqq2">
                <center> <layout:img srcName="supp.GIF" border="0"/>  </center>
                </layout:collectionItem>
               </layout:collection>
    et voici le code de la méthode "reservation.do?hidden=afficher" qui me permet de faire ça :
    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
     
     
     
    		Reserv2 swp = new Reserv2();
    	   list = reservationForm.getReserv2();
     
    	art = request.getParameter("article");
    		System.out.println(art);
     
    		 whs = request.getParameter("whss");
    		System.out.println(whs);
     
     
    		 qute = request.getParameter("qute");
    		long quantite = Long.parseLong(qute);
    		System.out.println(qute);
     
              ////	/ les parametres
    		pq = request.getParameter("pqq");
    		System.out.println(pq);
    		 profil = request.getParameter("prff");
    		System.out.println(profil);
    		 hlr = request.getParameter("hllr");
    		System.out.println(hlr);
     
    swp.setAa(art);
    		  		swp.setPp(profil);
    		  		swp.setWh(whs);
    		  		swp.setHlr2(hlr);
    		  		swp.setPq2(pq);
    		  		swp.setQt(qute);
    		  		////les param
    		  		swp.setAaa(art);
    		  		swp.setQtt(qute);
    		  		swp.setWhs(whs);
    		  		swp.setPpp(profil);
    		  		swp.setHllr2(hlr);
    		  		swp.setPqq2(pq);
     
    				  		list.add(swp);
    reservationForm.setReserv2(nouv);
    donc cette action récupère la 2eme collection et lui ajoute une ligne qui contient
    un champ modifiable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
      <layout:collectionItem title="QTE ">
                  <layout:text property="reserv2[${index}].qt" layout="false"/>
               </layout:collectionItem>
    le problème c'est quand je modifie la valeur de ce champs et je veux ajouter
    une autre ligne il ajoute cette ligne mais il m'affiche la 1er ligne que j'ai modifie avec la valeur ancienne (avant la modification)
    apparament puisque je ne submit pas le form

    est ce que qlq'un peut me dire comment je fais pour qu'il prend les modifications en considération

    merci

  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
    Utilise le tag layout:image à la place du tag layout:img.
    Ainsi, le formulaire sera soumis.
    Modératrice Java - Struts, Servlets/JSP, ...

  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 modifie le code de la jsp ainsi pour les 2 collections:
    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
     
    <layout:collection name="reservationForm" property="reserv"  styleClass="SCROLL" styleClass="FORM" width="900" height="180">
               <layout:collectionItem title="WAREHOUSE" property="whs" sortable="true"></layout:collectionItem>
             <layout:collectionItem title="ARTICLE" property="art" sortable="true"></layout:collectionItem>
                <layout:collectionItem title="PROFIL" property="prof" sortable="true"></layout:collectionItem>
         <layout:collectionItem title="HLR" property="hlr" sortable="true"></layout:collectionItem>
                <layout:collectionItem title="PQ" property="pq" sortable="true"></layout:collectionItem>
                  <layout:collectionItem title="activation" property="activ" sortable="true"></layout:collectionItem>
               <layout:collectionItem title="packaging" property="pack" sortable="true"></layout:collectionItem>
               <layout:collectionItem title="QTE" property="qte" sortable="true"></layout:collectionItem>         
               <layout:collectionItem title="+" property="ajouter"  action="/reservation.do?hidden=afficher" paramId="article,qute,whss,hllr,pqq,prff" paramProperty="article,qute,whss,hllr,pqq,prff">
                 <center> <layout:image   name="add.GIF" border="0" ></layout:image> </center>
               </layout:collectionItem>
            </layout:collection>
     
     
     
     
              <layout:pager maxPageItems="3">
     
               <layout:collection name="reservationForm" property="reserv2" indexId="index" styleClass="SCROLL" styleClass="FORM" width="800" height="120">
                <layout:collectionItem title="WAREHOUSE" property="wh" sortable="true"></layout:collectionItem> 
                <layout:collectionItem title="ARTICLE" property="aa" sortable="true"></layout:collectionItem>
               <layout:collectionItem title="PROFIL" property="pp" sortable="true"></layout:collectionItem>  
               <layout:collectionItem title="HLR" property="hlr2" sortable="true"></layout:collectionItem>
                <layout:collectionItem title="PQ" property="pq2" sortable="true"></layout:collectionItem>        
                  <layout:collectionItem title="QTE ">
                  <layout:text property="reserv2[${index}].qt" layout="false"/>
               </layout:collectionItem>
              <layout:collectionItem title="X" property="retirer" action="/reservation.do?hidden=Retirer" paramId="aaa,qtt,whs,ppp,hllr2,pqq2" paramProperty="aaa,qtt,whs,ppp,hllr2,pqq2">
                <center> <layout:image name="supp.GIF" border="0"> </layout:image> </center>
                </layout:collectionItem>
               </layout:collection>
    mais quand je clique sur "ajouter"il m'affiche l'erreur suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    	java.lang.Class.getMethod(Unknown Source)
    	org.apache.struts.actions.DispatchAction.getMethod(DispatchAction.java:322)
    	org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:262)
    	org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:194)
    	org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
    	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
    	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
    	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    donc il ne trouve pas la méthode de l'action à executer et pourtant je mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <layout:collectionItem title="+" property="ajouter"  action="/reservation.do?hidden=afficher" paramId="article,qute,whss,hllr,pqq,prff" paramProperty="article,qute,whss,hllr,pqq,prff">
                 <center> <layout:image   name="add.GIF" border="0" ></layout:image> </center>
               </layout:collectionItem>
    je ne comprend pas??

  4. #4
    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
    Comme tu utilises une DispatchAction, il faut ajouter l'attribut reqCode dans le tag image pour passer la valeur de la méthode à exécuter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <layout:image name="add.GIF" reqCode="afficher" border="0"></layout:image>
    et du coup, tu peux enlever le paramètre hidden=afficher dans l'attribut action.
    Modératrice Java - Struts, Servlets/JSP, ...

  5. #5
    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 je peux enlever le paramètre hidden=afficher dans l'attribut action
    mais les parametres "article,qute,whss,hllr,pqq,prff" qui me permettent de récupérer la lignes je peux pas les mettre ds le tag "layout image "
    c'est pas un attribut du tag "layout image "
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <layout:collectionItem title="+" property="ajouter"  action="/reservation.do?hidden=afficher" paramId="article,qute,whss,hllr,pqq,prff" paramProperty="article,qute,whss,hllr,pqq,prff">
    ??

  6. #6
    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
    Cela fonctionne-t'il en laissant les paramètres et l'attribut action ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <layout:collectionItem title="+" property="ajouter" action="/reservation.do" paramId="article,qute,whss,hllr,pqq,prff" paramProperty="article,qute,whss,hllr,pqq,prff">
       <center> <layout:image name="add.GIF" reqCode="afficher" border="0" ></layout:image> </center>
    </layout:collectionItem>
    Modératrice Java - Struts, Servlets/JSP, ...

  7. #7
    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
    non ça ne marche pas y'a l'erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    java.lang.NumberFormatException: null
    donc les parametres sont null

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 champs modifiable dans une collection
    Par john_wili dans le forum Struts 1
    Réponses: 10
    Dernier message: 24/11/2008, 21h25
  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