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 : passage de bean


Sujet :

Struts 1 Java

  1. #1
    Membre éclairé
    Profil pro
    Responsable test de charge
    Inscrit en
    Février 2006
    Messages
    186
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable test de charge

    Informations forums :
    Inscription : Février 2006
    Messages : 186
    Par défaut Struts : passage de bean
    Bonjour,

    Au sein d'un page jsp, je dispose d'une liste d'utilisateur. Et je voudrait pouvoir agir sur ceux ci. Pour cela, j'ai créé une action struts qui me permettra de gèrer chacun d'eux.

    Cependant, je n'arrive pas à passer en paramètres mon utilisateurs.

    LE code source de ma page listant les utilisateurs est tel que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    logic:iterate id="utilisateur" name="listUser" scope="request">   
     	      		<logic:present name="utilisateur" >
    		     		<tr>
    		       			 <td><bean:write name="utilisateur" property="nom" /></td>
    		       			 <td><bean:write name="utilisateur" property="prenom" /></td>
    		       			 <td><bean:write name="utilisateur" property="login" /></td>
    		       			 <td><bean:write name="utilisateur" property="typedecompte" /></td>
    		       			 	<td><html:link action="modifierUtilisateur.do?utilisateur=utilisateur">modifier</html:link></td>
     
    		      		</tr>
    	      		</logic:present>
           		</logic:iterate>
    En testant la récupération des données, je n'arrive pas à récupérer mon bean Utilisateur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    Utilisateur u = (Utilisateur) request.getAttribute("utilisateur");
    Utilisateur u2 = (Utilisateur) request.getSession().getAttribute("utilisateur");
    Quelle est la bonne manière de faire ?


    Merci d'avance ....

  2. #2
    F2S
    F2S est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 139
    Par défaut
    Donne ta form et ton action de modification

  3. #3
    F2S
    F2S est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 139
    Par défaut
    ton tag logic:present ne sert à rien à l'endroit ou il est placé, tu devrais inclure ton logic:iterate à l'interrieur du logic:present

  4. #4
    F2S
    F2S est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 139
    Par défaut
    et change le name, met listUser...

  5. #5
    Membre éclairé
    Profil pro
    Responsable test de charge
    Inscrit en
    Février 2006
    Messages
    186
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable test de charge

    Informations forums :
    Inscription : Février 2006
    Messages : 186
    Par défaut
    Tu suggères ceci pour le passsage par form??

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <html:form action="/modifierUtilisateur">
    	<td><bean:write name="utilisateur" property="nom" /></td>
    	<td><bean:write name="utilisateur" property="prenom" /></td>
            <td><bean:write name="utilisateur" property="login" /></td>
            <td><bean:write name="utilisateur" property="password" /></td>
    	<td><bean:write name="utilisateur" property="typedecompte" /></td>
            <td><html:link action="modifierUtilisateur.do">modifier</html:link></td>
    </html:form>
    J'ai effectivement un composant ModifierUtilisateurForm contenant un attributs utilisateur. Néanmoins, je n'arrive opas à faire le lien entre on bean Utilisateur présent dans la page JSP plus haut et la form transmise

  6. #6
    Membre confirmé Avatar de badoress
    Inscrit en
    Mars 2007
    Messages
    169
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2007
    Messages : 169
    Par défaut
    est ce que tu met ton bean utilistaeur dans la request ou dans la session ??

  7. #7
    Membre éclairé
    Profil pro
    Responsable test de charge
    Inscrit en
    Février 2006
    Messages
    186
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable test de charge

    Informations forums :
    Inscription : Février 2006
    Messages : 186
    Par défaut
    Je transmets une liste de bean au niveau de la requete donc il est en scope request.

  8. #8
    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
    Tu ne peux pas passer un bean Utilisateur en paramètre de ton lien mais seulement une ou plusieurs propriétés du bean, soit des objets de type String.

    En principe, on passe un identifiant ou un index qui ensuite permet dans l'Action de retrouver les autres propriétés du bean.
    Et pour passer la valeur de cet identifiant, il faut utiliser une EL comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:link action="modifierUtilisateur.do?idUtilisateur=${idUtilisateur}">...
    Ensuite, pour récupérer ce paramètre dans l'Action, il faut faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String idUtilisateur=request.getParameter("idUtilisateur") ;

  9. #9
    Membre éclairé
    Profil pro
    Responsable test de charge
    Inscrit en
    Février 2006
    Messages
    186
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable test de charge

    Informations forums :
    Inscription : Février 2006
    Messages : 186
    Par défaut
    Au final, je ne passe donc que l'identifiant associé à l'utilisateur puisque je ne peux transmettre le bean lui même.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <td><html:link action="modifierUtilisateur.do"  paramId="id" paramName="utilisateur" paramProperty="id">2</html:link></td>
    Je recréé ensuite le bean au sein de l'action comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    //ModifierUtilisateurForm modif = (ModifierUtilisateurForm) form;
    		UtilisateurDAO userDAO = new UtilisateurDAO();		
     
    		Integer userID = new Integer( request.getParameter("id") ) ;		
    		Utilisateur userToModify =  userDAO.findById(userID);
     
    		request.setAttribute("userToModify", userToModify);
    		return mapping.findForward("success");
    Merci beaucoup c_nvy !!!!

  10. #10
    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
    De rien.

    Effectivement, pour passer un paramètre dans un lien, on peut soit utiliser une EL, soit utiliser les attributs paramName, paramId et paramProperty du tag html:link.

  11. #11
    Membre émérite
    Avatar de yolepro
    Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2002
    Messages
    918
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mai 2002
    Messages : 918
    Par défaut
    Citation Envoyé par c_nvy Voir le message
    De rien.

    Effectivement, pour passer un paramètre dans un lien, on peut soit utiliser une EL, soit utiliser les attributs paramName, paramId et paramProperty du tag html:link.
    C'est vrai que c'est dommage d'ailleur je trouve de ne pas avoir ajouter un attribut de type submit="true/false" qui te permette de soumettre le formulaire via le tag link, surtout qu'il est associé à l'attribut action. Ca n'est pas compliqué à mettre en place et ca faciliterait pas mal de monde.

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

Discussions similaires

  1. [Struts] Problème de passage de bean
    Par blbird dans le forum Struts 1
    Réponses: 1
    Dernier message: 21/11/2006, 10h45
  2. [jsp][struts] Acces au bean d'un <logic:iterate>
    Par Altherac dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 29/09/2004, 13h02
  3. [struts] passage de v1.1 à v1.2
    Par richard_34b dans le forum Struts 1
    Réponses: 12
    Dernier message: 13/09/2004, 17h22
  4. [Struts]Accéder un bean dans le bean
    Par MasterMic dans le forum Struts 1
    Réponses: 4
    Dernier message: 13/09/2004, 10h23

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