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 :

déclenchement d'une action à chaque itération d'un logic iterate


Sujet :

Struts 1 Java

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2009
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 51
    Points : 19
    Points
    19
    Par défaut déclenchement d'une action à chaque itération d'un logic iterate
    Bonjour,

    Etant débutante dans le développement d'application en JavaEE, je souhaiterais savoir comment déclencher une action à chaque itération d'un logic iterate.
    J'ai essayé dernièrement ceci dans ma jsp:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href='<%=request.getContextPath()%>/monAction.do?mavaleur=<%=((RapportActivite)pageContext.getAttribute("rapportActivite")).getId()%>'/>
    Le problème c'est que lorsque je fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println (request.getParameter(mavaleur));
    dans mon action cela me retourne null donc je pense que je fais fausse route.

    Merci beaucoup de vous intéresser à mon problème j'en ai vraiment besoin.

  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
    Essaie plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:link action="monAction" paramId="mavaleur" paramName="rapportActivite" paramProperty="id">

  3. #3
    Membre à l'essai
    Inscrit en
    Juillet 2009
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 51
    Points : 19
    Points
    19
    Par défaut
    Merci de votre aide cette commande à l'air de marcher je le vois quand j'affiche le code source de ma page mais je ne parviens toujours pas à récupérer la valeur de mon paramètre. Dans le log celle-ci est toujours nulle. Auriez vous une idée à me suggérer??

  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
    id est une valeur affichée ou une valeur saisie ?

    Peux-tu poster le code du logic:iterate ?

  5. #5
    Membre à l'essai
    Inscrit en
    Juillet 2009
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 51
    Points : 19
    Points
    19
    Par défaut
    Voilà le code de mon logic iterate avec la commande que vous m'avez fourni:

    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
    <logic:iterate name="listRA" id="rapportActivite">
                    <tr>
                        <td class="ligne_formulaire_colonne" width="165px">
                            <center><b><bean:write name="rapportActivite" property="idUtilisateur"/></b></center>
                        </td>
     
                        <html:link action="GetRecapAction.do" paramId="valeuridRA" paramName="rapportActivite" paramProperty="id"/>
     
                        <logic:iterate name="listrecap"  id="recap">
                        <td class="ligne_formulaire_colonne" align="center" width="125px">
    	                    <bean:write  name="recap" property="idUtilR"/>  
    	                    <html:text property="prenom" name="utilisateur" size="15px"/>
                        </td>                    
                    	</logic:iterate>
                    </tr>
                    </logic:iterate>
    L'id n'est ni saisi ni affiché il me servira juste à faire une requête dans mon action pour afficher la valeur que je souhaite dans le bean write qui suit. Je sait pas si je suis trés claire. Pour afficher ma listRA j'ai fait une requête vers ma BD.

  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
    id est-elle bien une propriété de RapportActivite et est-elle bien renseignée dans chaque objet de type RapportActivite de la liste listRa ?

  7. #7
    Membre à l'essai
    Inscrit en
    Juillet 2009
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 51
    Points : 19
    Points
    19
    Par défaut
    oui j'ai tout tracé dans le log de plus sur le code affiché de ma page cela concorde bien.
    la propriété id est bien défini dans mes mappings et dans ma classe objet du coup je ne vois pas pourquoi je ne peux pas récupérer ce paramètre.

  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
    Tu exécutes bien GetRecapAction.do en cliquant sur le lien ?

    parce que là, tel que tu as codé le link, tu ne dois pas pouvoir cliquer dessus.

    Il faudrait mettre quelque chose du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <html:link action="GetRecapAction.do" paramId="valeuridRA" paramName="rapportActivite" paramProperty="id">
      <bean:write name="rapportActivite" property="idUtilisateur"/>
    </html:link>
    id et idUtilisateur sont-elles bien deux propriétés différentes ?

  9. #9
    Membre à l'essai
    Inscrit en
    Juillet 2009
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 51
    Points : 19
    Points
    19
    Par défaut
    oui se sont bien deux propriétés différentes.
    Le souci c'est que moi je ne veux pas que l'action se déclenche suite à un clic je veux qu'elle se déclenche à chaque fois que le logic iterate s'exécute.
    Dois-je en déduire que l'action ne se déclenche pas vraiment alors?

  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
    J'ai dû mal à te suivre là.

    L'Action ne peut se déclencher que si tu cliques sur un lien ou sur un bouton submit ou encore si tu cliques sur un bouton qui exécute une fonction Javascript qui soumet le formulaire.

    EDIT : Peux-tu expliquer clairement ce que tu veux faire exactement ?

  11. #11
    Membre à l'essai
    Inscrit en
    Juillet 2009
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 51
    Points : 19
    Points
    19
    Par défaut
    Il est impossible de déclencher une action sans clic??Aucune commande ne le permet??

  12. #12
    Membre à l'essai
    Inscrit en
    Juillet 2009
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 51
    Points : 19
    Points
    19
    Par défaut
    dsl je n'avez pas lu votre question d'après.

    En fait je veux que pour chaque élément de ma listeRA (pour lequel le logic iterate va s'exécuter) l'id de l'élément soit récupérer et utiliser dans une action pour que la listerecap soit en correspondance avec lélément.
    Pour cela je voulais qu'une action se déclenche automatiquement dans laquelle j'auris récupérer mon id et l'aurai utiliser.

    Est-ce plus clair dit comme ça??

  13. #13
    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
    Mais il suffit de faire cette correspondance dans l'Action qui s'exécute avant l'affichage.
    Ainsi, listeRA et listerecap seront remplies automatiquement dès le premier affichage.

  14. #14
    Membre à l'essai
    Inscrit en
    Juillet 2009
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 51
    Points : 19
    Points
    19
    Par défaut
    Bonjour,
    non ceci ne marche pas puisque mon id change pour chaque itération et même si je dit que l'id est égal à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     rapportActivite.getId()
    cela ne récupère jamais un id et ne m'affiche rien. Mais c'est surement moi qui ne vois pas comment faire, pourriez vous m'éclairer??? Merci du temps que vous m'accordez.

  15. #15
    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 tu constitues listRA à partir d'une requête sur la BD, tu récupères bien l'id pour chaque itération.
    A ce moment-là, pour chaque id récupéré, tu es capable de constituer la liste listerecap.

    Il suffit alors de définir la liste listerecap comme propriété de l'objet RapportActivite et ainsi, pour chaque itération de listRA, tu mets à jour la propriété idUtilisateur et listerecap.
    Tu auras donc au final une liste d'objets RapportActivite ayant pour propriété idUtilisateur et listerecap.

    Ainsi, pour afficher le contenu dans la jsp, tu pourras coder ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <logic:iterate name="listRA" id="rapportActivite">
       <bean:write name="rapportActivite" property="idUtilisateur"/>
       <logic:iterate name="rapportActivite" property="listrecap"  id="recap">
          <bean:write  name="recap" property="idUtilR"/>  
       </logic:iterate>
    </logic:iterate>
    Si tu ne comprends pas ce que j'explique, poste le code qui te permet de constituer la liste listRA et la liste listerecap.

  16. #16
    Membre à l'essai
    Inscrit en
    Juillet 2009
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 51
    Points : 19
    Points
    19
    Par défaut
    Je comprends l'idée mais je ne vois pas comment définir la liste listerecap comme propriété de l'objet RapportActivite. Voici mon code pour la création de liste RA et listrecap:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    List<RapportActivite> listRA= (List) rapportActiviteManager.loadList(criterion);
                	request.setAttribute("listRA",listRA);
     
    criterion.setFilter(new ComparisonFilter("idRapport", ComparisonFilter.EQUAL,/*rapportActivite.getId()*/  ou une valeur fixe pour que j'arrive à afficher ma page));
                	List<Recap> listrecap = (List) recapManager.loadList(criterion);
                	request.setAttribute("listrecap",listrecap);

  17. #17
    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
    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
    List<RapportActivite> listRA= (List) rapportActiviteManager.loadList(criterion);
     
    List<Recap> listrecap = null ;
     
    for ( int i=0; i<listRA.size(); i++)
    {
       RapportActivite rapportActivite=(RapportActivite) listRA.get(i) ;
     
       criterion.setFilter(new ComparisonFilter("idRapport", ComparisonFilter.EQUAL,rapportActivite.getId());
     
       listrecap = (List) recapManager.loadList(criterion);
     
       rapportActivite.setListrecap(listrecap) ;
       listeRA.set(i,rapportActivite) ;
    }
     
    request.setAttribute("listRA",listRA);
    mais ceci suppose que tu puisses ajouter la propriété listrecap dans la classe RapportActivite, ce qui n'est peut-être pas le cas ?

  18. #18
    Membre à l'essai
    Inscrit en
    Juillet 2009
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 51
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par c_nvy Voir le message
    [CODE]
    mais ceci suppose que tu puisses ajouter la propriété listrecap dans la classe RapportActivite, ce qui n'est peut-être pas le cas ?
    Si j'ai pu le faire, mais lorsque j'exécute ma page l'erreur suivante se déclenche:
    "No collection found" dans mon log. Je ne la comprends pas. Est-ce parce qu'il ne détecte pas ma listrecap??

  19. #19
    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
    Peux-tu montrer le code complet du logic:iterate ?

  20. #20
    Membre à l'essai
    Inscrit en
    Juillet 2009
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 51
    Points : 19
    Points
    19
    Par défaut
    Je vous redonne tout.

    Mon logic iterate:
    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
     
    <logic:iterate name="listRA" id="rapportActivite">
       <tr>
           <td class="ligne_formulaire_colonne" width="165px">
                <center><b><bean:write name="rapportActivite" property="idUtilisateur"/></b></center>
          </td>
     
          <logic:iterate name="rapportActivite" property="listRecap"  id="recap">
          <td class="ligne_formulaire_colonne" align="center" width="125px">
    	   <bean:write  name="recap" property="idUtilR"/>   
    	   <html:text property="prenom" name="utilisateur" size="15px"/>
           </td>
           </logic:iterate>
     
       </tr>
    </logic:iterate>
    Mon action:
    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
     
    List<RapportActivite> listRA= (List) rapportActiviteManager.loadList(criterion);
    request.setAttribute("listRA",listRA); 
     
    List<Recap> listRecap = null ;
     
    for ( int i=0; i<listRA.size(); i++){
     
    RapportActivite rapportActivite=(RapportActivite) listRA.get(i) ;
     
    request.setAttribute("rapportActivite",rapportActivite);
     
    criterion.setFilter(new ComparisonFilter("idRapport", ComparisonFilter.EQUAL,rapportActivite.getId()));
     
    listRecap = (List) recapManager.loadList(criterion);
     
    rapportActivite.setListRecap(listRecap) ;
    listRA.set(i,rapportActivite) ;
    }
     
    request.setAttribute("listRA",listRA);
    voulez vous la déclaration de la listRecap dans la classe rapportActivite?Encore merci de m'aider.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [Dates] déclenchement d'une action automatique
    Par philsand77 dans le forum Langage
    Réponses: 2
    Dernier message: 27/05/2007, 21h37
  2. Réponses: 7
    Dernier message: 31/01/2007, 11h31
  3. Déclenchement d'une action d'après une horloge
    Par taytay dans le forum Langage
    Réponses: 4
    Dernier message: 16/10/2006, 11h27
  4. comment retarder le déclenchement d'une action "onmouseover" ?
    Par Chris Cool dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 18/06/2006, 07h58
  5. Réponses: 10
    Dernier message: 17/05/2006, 19h55

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