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 :

Lien vers un formulaire dans une balise iterate [FAQ]


Sujet :

Struts 1 Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Lien vers un formulaire dans une balise iterate
    Bonjour !

    Voila mon problème : j'ai une collection de beans représentant des utilisateurs de mon système, et je voudrais pouvoir les lister dans un JSP à l'aide de la balise logic:iterate et cliquer sur une ligne pour pouvoir éditer l'utilisateur correspondant.

    En gros, je voudrais pouvoir passer la bean correspondant à la bonne iteration du 'iterate' en parametre à une action Struts. Est-ce possible ?

    Merci de votre aide !

    -
    Céline

  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
    Tu peux très bien passer par exemple l'id de l'utilisateur en paramètre de ton Action via un html:link comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <logic:iterate name="nomDuFormBean" property="usersList" id="user">
       <html:link action="pathAction" paramName="user" paramProperty="id" paramId="parm">
           <bean:write name="user" property="id"/>
       </html:link>
       <bean:write name="user" property="nom"/>
    </logic:iterate>

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    OK pour passer des paramètres de type texte, mais est-il possible de passer toute la bean (ce qui m'éviterait une requète à la base ou de stocker quelque part ma collection d'utilisateur) et de la récupérer dans l'autre page à l'aide de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ServletRequest.getAttribtue("user")
    par exemple...

  4. #4
    Membre expérimenté Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Points : 1 639
    Points
    1 639
    Par défaut
    Peut etre en le mettant dans un formulaire a chaque iteration, ainsi tu recuperera ton bean dans ton ActionForm.
    Mais bon un peu lourd ....

    Ce qui se fait en general c'est de recuperer le ou les id et au niveau de ton ActionServlet d avoir une fonction d'interrogation des donnees a partir de ton id.

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Merci pour vos réponses, je vais donc utiliser l'ID, je voulais juste savoir s'il y avait un moyen simple de passer directement le bean !

    Merci encore !

    --
    Céline

  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
    En fait, il y a bien une solution :

    Dans la classe Java User, tu peux ajouter une propriété de type Map qui contiendra les propriétés de l'utilisateur avec getter et setter, et tu alimentes cette map via le constructeur par exemple 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
    15
    16
    17
    18
    19
    private String id ;
    private String nom ;
    private Map userMap = new HashMap() ;
     
    public User(String id,String nom)
    {
        this.id=id ;
        this.nom=nom;
        this.setUserMap(this.id,this.nom) ;
    }
    public void setUserMap(String id,String nom)
    {
        this.userMap.put("id",id) ;
        this.userMap.put("nom",nom) ;
    }
    public Map getUserMap()
    {
        return this.userMap;
    }
    Lorsque tu constitues ta collection de beans User, tu fais appel au constructeur comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ArrayList usersList= new ArrayList() ;
    usersList.add(new User("id1","user1")) ;
    usersList.add(new User("id2","user2")) ;
    Et dans la jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <logic:iterate name="nomDuFormBean" property="usersList" id="user">
       <html:link action="pathAction" paramName="user" paramProperty="userMap" paramId="parm">
           <bean:write name="user" property="id"/>
       </html:link>
       <bean:write name="user" property="nom"/>
    </logic:iterate>

  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
    Pardon, je me suis trompée.

    Dans la jsp, il faut plutôt coder ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <logic:iterate name="nomDuFormBean" property="usersList" id="user">
       <html:link action="pathAction" name="user" property="userMap">
           <bean:write name="user" property="nom"/>
       </html:link>
    </logic:iterate>
    Et pour récupérer les paramètres dans l'Action :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String id=request.getParameter("id") ;
    String nom=request.getParameter("nom");

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

Discussions similaires

  1. liens dans une balise select
    Par tabouet dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 28/01/2008, 12h07
  2. offset dans une balise iterate
    Par root76 dans le forum Struts 1
    Réponses: 6
    Dernier message: 20/04/2007, 11h41
  3. Définir le target des liens contenus dans une balise Object
    Par Booyakha dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 15/02/2007, 15h23
  4. [FLASH MX] Lien vers un .swf dans une fenetre flash
    Par dazed_dive dans le forum Flash
    Réponses: 6
    Dernier message: 07/07/2006, 18h39
  5. Réponses: 4
    Dernier message: 26/04/2006, 17h43

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