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 :

comment recuperer les valeurs modifiees dans une collection


Sujet :

Struts 1 Java

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2008
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 30
    Points : 10
    Points
    10
    Par défaut comment recuperer les valeurs modifiees dans une collection
    bonjour tout le monde
    dans ma vue j'affiche un tableau avec le tag <layout: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
    34
    35
     
     <logic:notEmpty property="resulhist" name="pretraitementForm">
         <layout:collection name="pretraitementForm" property="resulhist" styleClass2="titrenews" styleClass="SCROLL" styleClass="FORM" id="tablehist" width="1000" height="150" align="center"  >
     
           <layout:collectionItem title="msisdn" property="msisdn"></layout:collectionItem>
           <layout:collectionItem title="firstname" >
             <layout:textarea name="tablehist" property="firstname" layout="false"/>
           </layout:collectionItem>
           <layout:collectionItem title="lastname" >
             <layout:textarea name="tablehist" property="lastname" layout="false"/>
           </layout:collectionItem>
           <layout:collectionItem title="contract num" property="contractno"></layout:collectionItem>
           <layout:collectionItem title="type" property="type"></layout:collectionItem>
           <layout:collectionItem title="requested item" property="item"></layout:collectionItem>
           <layout:collectionItem title="cost price" property="pricedz"></layout:collectionItem>
           <layout:collectionItem title="point price" property="pricept"></layout:collectionItem>
           <layout:collectionItem title="offered item" property="itemoff"></layout:collectionItem>
           <layout:collectionItem title="category" property="category"></layout:collectionItem>
           <layout:collectionItem title="name" >
             <layout:textarea name="tablehist" property="adress" layout="false"/>
           </layout:collectionItem>
           <layout:collectionItem title="name" >
             <layout:textarea name="tablehist" property="wilaya" layout="false"/>
           </layout:collectionItem>
           <layout:collectionItem title="name" >
             <layout:textarea name="tablehist" property="note" layout="false"/>
           </layout:collectionItem>
           <layout:collectionItem title="agent code" property="agentcode"></layout:collectionItem>
           <layout:collectionItem title="creation date" property="date" sortable="true"></layout:collectionItem>
           <layout:collectionItem title="status" property="status"></layout:collectionItem>
           <layout:collectionItem title="modifier" action="/pretraitement.do?hidden=modifier" paramId="cd,fn" paramProperty="cd,fn" >
           <center><layout:img srcName="edit.gif" border="0"/></center> 
           </layout:collectionItem>
      </layout:collection>
        </logic:notEmpty>
    normalement quand je clique sur modifier les champs édité (ceux du texterea) seront ré enregistrées sur la base de données
    mais mon problem et que je n'arrive pas a récuperer les nouvelles valeurs tapées par l'utilisateur

    veulliez m'aider svp

  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
    Pour récupérer les valeurs saisies, il suffit d'itérer sur la collection.

  3. #3
    Membre à l'essai
    Inscrit en
    Août 2008
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 30
    Points : 10
    Points
    10
    Par défaut
    bonjour,

    je ne c'est pas si j'ai bien compris, mais j'ai essayer de faire ca
    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
     
    	public ActionForward modifier(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws SQLException, IOException, ServletException {
     
    		PretraitementForm pretraitementForm = (PretraitementForm) form;
    		System.out.println("g cliquer sur modifier");	
    		Connexion connexion=new Connexion();
    		Connection con= connexion.createConnection();
    		Statement st =null;
    		String nom=null ;
    		List ll;
    		String m  = request.getParameter("cd");
    		String n  = request.getParameter("fn");
    		ll = pretraitementForm.getResulhist();
     
    		for (int i=0; i<ll.size();i++)
    		{
    			Tablehist tablehist2 =(Tablehist) ll.get(i);
    			if (tablehist2.getFirstname().equals(n)){
    				String hh = tablehist2.getFirstname();
    				System.out.println(hh);
    			}
    		}
    mais ca me retourne toujours l'ancienne valeur celle remplis de la requete 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
     
     
    rs=st.executeQuery("select cc.subno, cc.FIRST_NAME,cc.last_NAME, cc.contno, cc.type, cc.requested_item, cc.cost_price, cc.point_price, nvl(bb.name_item,'not changed')offered_item,cc.category, nvl(cc.adress,'_')adress, nvl(cc.wilaya,'_')wilaya, nvl(cc.note,'_')note, cc.code_agent, cc.creation_date, cc.status_def, cc.CODE_DEMAND from (select a.subno, c.FIRST_NAME,c.last_NAME,c.contno,c.type, a.creation_date, a.code_agent, (b.name_item) requested_item, b.cost_price,b.point_price, a.ITEM_OFFERED,a.category ,a.adress, a.wilaya, a.note,d.status_def,a.CODE_DEMAND from demand a, item b, status_description d, clients c where c.subno=a.subno and a.code_item=b.code_item and a.current_status=d.code_status and a.current_status='5' or c.subno=a.subno and a.code_item=b.code_item and a.current_status=d.code_status and a.current_status='8' or  c.subno=a.subno and a.code_item=b.code_item and a.current_status=d.code_status and a.current_status='7')cc , item bb where cc.ITEM_OFFERED = bb.code_item (+) and cc.subno='"+num+"' "); 
    		while (rs.next()){
    			//first name est enregistré dans lla 3eme ligne et la dernieres ligne(celle du param id)			
    			Tablehist tablehist= new Tablehist();
    			tablehist.setMsisdn(rs.getString(1).trim()); 
    			tablehist.setFirstname(rs.getString(2).trim());
    			tablehist.setLastname(rs.getString(3).trim());
    			tablehist.setContractno(rs.getString(4).trim()); 
    			tablehist.setType(rs.getString(5).trim()); 
    			tablehist.setItem(rs.getString(6).trim()); 
    			tablehist.setPricedz(rs.getString(7).trim()); 
    			tablehist.setPricept(rs.getString(8).trim()); 
    			tablehist.setItemoff(rs.getString(9).trim()); 
    			tablehist.setCategory(rs.getString(10).trim()); 
    			tablehist.setAdress(rs.getString(11).trim()); 
    			tablehist.setWilaya(rs.getString(12).trim()); 
    			tablehist.setNote(rs.getString(13).trim()); 
    			tablehist.setAgentcode(rs.getString(14).trim()); 
    			tablehist.setDate(rs.getString(15).trim()); 
    			tablehist.setStatus(rs.getString(16).trim()); 
    			tablehist.setCd(rs.getString(17).trim());
    			tablehist.setFn(rs.getString(2).trim());
     
    			list.add(tablehist);
     
     
     
    	}pretraitementForm.setResulhist(list);

  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
    En fait, je n'avais pas fait attention que la méthode modifier était appelée par un clic sur un lien.
    Lorsqu'une Action est exécutée lors d'un clic sur un lien, le formulaire n'est pas soumis, ce qui explique pourquoi tu ne récupères pas le champ firstname modifié, lorsque tu itères sur la collection.
    Pour que la modif soit prise en compte, il faut soumettre le formulaire en cliquant sur un bouton submit.

  5. #5
    Membre à l'essai
    Inscrit en
    Août 2008
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 30
    Points : 10
    Points
    10
    Par défaut
    ahhhhhhhh, merci
    je vais essayer de changer le lien
    merci pour votre reponse

  6. #6
    Membre à l'essai
    Inscrit en
    Août 2008
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 30
    Points : 10
    Points
    10
    Par défaut
    desolé juste une autre question si vous me permetter, ya pas une solution pour soumettre les données en utilisant une image????

  7. #7
    Membre à l'essai
    Inscrit en
    Août 2008
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 30
    Points : 10
    Points
    10
    Par défaut
    salut une autre fois ca ne marche toujour pas


    j'ai modifier comme suit:
    avant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
           <layout:collectionItem title="modifier" action="/pretraitement.do?hidden=modifier" paramId="cd,fn" paramProperty="cd,fn" >
           <center><layout:img srcName="edit.gif" border="0"/></center> 
           </layout:collectionItem>
    apres
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
           <layout:collectionItem title="modifier" >
           <center><layout:submit value="modifier"  onclick="setHidden('modifier');" onkeydown="SubmitIfEnter('modifier');" /></center> 
           </layout:collectionItem>
    et dans la methode j'ai fait ca
    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
    	public ActionForward modifier(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws SQLException, IOException, ServletException {
     
    		PretraitementForm pretraitementForm = (PretraitementForm) form;
    		System.out.println("g cliquer sur modifier");	
    		Connexion connexion=new Connexion();
    		Connection con= connexion.createConnection();
    		Statement st =null;
    		String nom=null ;
    		List ll;
    		ll = pretraitementForm.getResulhist();
     
    		for (int i=0; i<ll.size();i++)
    		{
    			Tablehist tablehist2 =(Tablehist) ll.get(i);
    				String hh = tablehist2.getFirstname();
    				System.out.println("nom apres modif ="+hh);
     
     
    		}
     
    	return mapping.findForward("prep");
    	}
    ce que je comprend pas est comment je peut savoir quel ligne j'ai modifier si je n'utilise pas les paramId???????????

  8. #8
    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
    Etant donné que le formulaire n'est pas soumis lors d'un clic sur un lien, je ne vois pas d'autre solution que de passer en paramètres de l'Action tous les champs modifiables avec en plus un identifiant.

  9. #9
    Membre à l'essai
    Inscrit en
    Août 2008
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 30
    Points : 10
    Points
    10
    Par défaut
    désolé pour dire ca, mais j'ai pas compri qu'es qu'il faut faire, je suis debutante,svp essay de m'expliqué plus

    d'apres ce que j'ai compri je doit passer tout mes champ modifiable par l'action et j'ajoute un identifiant, mais comment je fait ca

    merci pour votre patience

  10. #10
    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
    Quand je parle d'identifiant, je fais référence à un champ qui identifie la ligne modifiée (un id, un code) et qui te servira pour mettre à jour la bonne ligne dans la table.
    Dans le code que tu as posté, tu passais en paramètres les propriétés cd et fn.
    Ces champs-là te permettent-ils d'identifier la ligne à modifier dans la table ?

  11. #11
    Membre à l'essai
    Inscrit en
    Août 2008
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 30
    Points : 10
    Points
    10
    Par défaut
    pour le cd c'est le code de la demande qui est la clé primaire au niveau de la base de données, elle me permetter de savoir qu'elle demande l'utilisateur a confirmer quand il clique sur le lien "confirmer",
    mais pour le boutton modifier j'ai pas pu utiliser la meme solution parcq a chaq fois il me renvoi tjr la valeur rempli au debut(avant l'affichage) il me revoit pas la valeur modifier, je ne sait pas si j'ai pu m'exprimer bien.

  12. #12
    Membre à l'essai
    Inscrit en
    Août 2008
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 30
    Points : 10
    Points
    10
    Par défaut
    bonjour,
    ca ne marche pas encors, jarrive pas a trouver la solution, svp aider moi , je suis vraiment bloqué.
    merci

Discussions similaires

  1. Réponses: 4
    Dernier message: 11/06/2015, 09h52
  2. Réponses: 7
    Dernier message: 16/11/2011, 14h18
  3. Réponses: 1
    Dernier message: 26/07/2009, 01h21
  4. Comment recuperer un valeur envoyé dans une URL
    Par pierrot10 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 29/12/2005, 11h28
  5. Comment gérer les valeur Nulles dans une requête ?
    Par sondo dans le forum Bases de données
    Réponses: 3
    Dernier message: 16/03/2005, 11h02

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