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. #21
    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
    Il faudrait s'assurer que ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    listRecap = (List) recapManager.loadList(criterion);
    ne renvoie pas null.

    Sinon, dans la classe RapportActivite, bien définir listRecap comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private List listRecap=new ArrayList() ;
    Et enfin, seul le dernier request.setAttribute("listRA",listRA) est utile.
    Et le request.setAttribute("rapportActivite",rapportActivite) ne sert à rien.

  2. #22
    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
    Il faudrait s'assurer que ce code :
    listRecap = (List) recapManager.loadList(criterion);
    ne renvoie pas null.
    C'est fait mais ce n'est pas le cas.

    Citation Envoyé par c_nvy Voir le message
    Sinon, dans la classe RapportActivite, bien définir listRecap comme ceci :
    private List listRecap=new ArrayList() ;
    J'avais effectivement oublié le "= new ArrayList()".

    Cependant cela ne marche toujours pas. Sauf que la je n'ai aucune erreur ça ne s'affiche tout simplement pas comme si je n'avais pas mis le deuxième logic iterate.

  3. #23
    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
    Si le deuxième logic:iterate n'affiche rien, cela signifie que listRecap est vide pour chaque itération de listRA et je ne comprends pas pourquoi.

    Ce code-là :
    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) ;
    listRA.set(i,rapportActivite) ;
    }
     
    request.setAttribute("listRA",listRA);
    est-il bien exécuté avant l'affichage de la jsp ?

  4. #24
    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
    J'ai vérifié qu'à chaque passage dans la boucle de ce code listRecap ne soit pas vide comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    System.out.println("listrecap"+listRecap );
    Et dans le log je vois à chaque "System.out.println" que la liste possède au moins quatre éléments. J'ai même affiché certaines partie de la liste pour en être sure.

    Je ne vois pas pourquoi ce code ne s'éxécuterai pas avant l'affichage de la jsp puisque dans ma jsp d'autres éléments s'affiche en fonction de l'action contenant ce code.Je ne comprends pas.

  5. #25
    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
    Alors dans ce cas, ce serait ceci qui ne fonctionne pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    rapportActivite.setListRecap(listRecap) ;
    listRA.set(i,rapportActivite) ;
    Peux-tu faire un test en modifiant ton code 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
    List<RapportActivite> listRA= (List) rapportActiviteManager.loadList(criterion);
     
    List<RapportActivite> listeRapportActivite = new ArrayList() ;
     
    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) ;
    listeRapportActivite.add(rapportActivite) ;
    }
     
    request.setAttribute("listRA",listeRapportActivite );

  6. #26
    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
    J'ignore ce quel changement j'étais censé voir mais là il n'y en a aucun le logic iterate ne se déclenche toujours pas et je n'ai toujours pas d'erreur dans le log. Suis-je censé voir quelque chose d'autre?

  7. #27
    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
    Je voulais juste voir si c'était la méthode set qui ne fonctionnait pas.

    Avec les éléments que tu me donnes, je ne vois pas ce qui cloche.
    Il faudrait peut-être poster tout le code de l'Action et de la jsp au cas où.

  8. #28
    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,

    Voici le code en entier de ma jsp et de mon action.

    ma jsp:

    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
     
    <%@ taglib uri="/tags/struts-html" prefix="html"%>
    <%@ taglib uri="/tags/struts-bean" prefix="bean"%>
    <%@ taglib uri="/tags/struts-logic" prefix="logic"%>
    <%@ taglib uri="/tags/display" prefix="display"%>
     
    <html:xhtml/>
    <center>
     
        <html:errors/>
        <div  align="center">
     
          <table border="1" class="contour_formulaire_colonne" cellspacing="0" cellpadding="0">
     
                    <tr  class="titre_formulaire_colonne" >
                        <td class="ligne_formulaire_colonne" width="165px">
                            <center>Consultants</center>
                        </td>                   
                        <td class="ligne_formulaire_colonne" width="70px">
                            <center><b>Statut</b></center>
                        </td>
     
                        <td class="ligne_formulaire_colonne" width="85px">
                            <center><b>Modifier</b></center>
                        </td>
                        <td class="ligne_formulaire_colonne" width="165px">
                            <center><b>Jours travaillés (jours)</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"/>
    	                   </td>	                   
    					</logic:iterate>
                        <td class="ligne_formulaire_colonne" width="80px">
                            <center><b>Salaire</b></center>
                        </td>
    					<td class="ligne_formulaire_colonne" width="80px">
                            <center><b>Virement</b></center>
                        </td>
                    </tr>                                           
     
                    <logic:iterate name="listRA" id="rapportActivite">
                    <tr>  
                        <td class="ligne_formulaire_colonne" width="165px">
                            <center><b><bean:write name="rapportActivite" property="prenomN"/></b></center>
                        </td>
                        <td class="ligne_formulaire_colonne" align="center" width="70px">
                        <img align="middle" src="<%=request.getContextPath()%>/icone/20x20/valider.png"
    	                     width='20' height='20' border='0'/>
                        </td>
                        <td class="ligne_formulaire_colonne" align="center" width="85px">
                        <img src="<%=request.getContextPath()%>/images/page_edit.gif"
    	                     width='20' height='20' border='0'/>
                        </td>
                        <td class="ligne_formulaire_colonne" width="165px">
                            <center><b>4</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>
    					<td class="ligne_formulaire_colonne" width="80px">
                            <center><b>S</b></center>
                        </td>
    					<td class="ligne_formulaire_colonne" width="80px">
                            <center><b>V</b></center>
                        </td>
                    </tr>
                    </logic:iterate>    
     
          </table>
       </div>            
    </center>
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
     
    package com.portalliance.struts.action.list;
     
    import com.portalliance.business.manager.IManager;
    import com.portalliance.business.manager.ManagerFactory;
    import com.portalliance.business.object.Activite;
    import com.portalliance.business.object.ActiviteType;
    import com.portalliance.business.object.Client;
    import com.portalliance.business.object.RapportActivite;
    import com.portalliance.business.object.Recap;
    import com.portalliance.business.object.TypeActiviteType;
    import com.portalliance.business.object.Utilisateur;
    import com.portalliance.struts.action.AuthenticateAction;
    import com.portalliance.struts.form.BaseDynaForm;
    import com.portalliance.util.DisplayDate;
    import com.portalliance.util.StringValue;
    import com.portalliance.util.sql.BooleanFilter;
    import com.portalliance.util.sql.ComparisonFilter;
    import com.portalliance.util.sql.SearchCriterion;
     
    import java.util.ArrayList;
    import java.util.List;
     
    import javax.servlet.ServletRequest;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;
     
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
     
    public class GetRecapAction extends AuthenticateAction  {
     
    	/**
         * Log.
         */
        protected static final Log LOG = LogFactory.getLog(GetRecapAction.class);
     
        /**
         * {@inheritDoc}
         */
        public ActionForward execute(ActionMapping mapping, ActionForm form,
                HttpServletRequest request, HttpServletResponse response)
                throws Exception {
     
                ActionForward forward = super.execute(mapping, form, request, response);
     
                if(forward == null){
     
                	BaseDynaForm formulaire= (BaseDynaForm) form;
     
                	/**chargement des managers à utilisés**/
                	IManager utilisateurManager = ManagerFactory.getManager(ManagerFactory.UTILISATEUR_MANAGER);
                	IManager rapportActiviteManager = ManagerFactory.getManager(ManagerFactory.RAPPORT_ACTIVITE_MANAGER);
                	IManager activiteTypeManager = ManagerFactory.getManager(ManagerFactory.ACTIVITE_TYPE_MANAGER);
                	IManager recapManager = ManagerFactory.getManager(ManagerFactory.RECAP_MANAGER);
     
                	/**Chargement de la liste des activités types de présence et d'une activité type**/
                	ActiviteType aT = (ActiviteType) activiteTypeManager.create();
                	request.setAttribute("aT",aT);
     
                    SearchCriterion criterion= new SearchCriterion();
                    criterion.setFilter(new ComparisonFilter("idTypeActiviteType", ComparisonFilter.EQUAL, 1));
                	List<ActiviteType> listeAT = (List) activiteTypeManager.loadList(criterion,false);
                    if(listeAT.size()>0){
                        request.setAttribute("listeAT", listeAT);
                    }
     
     
                    /**Chargement de la liste des utilisateurs et d'un utilisateur**/
                	Utilisateur utilisateur= (Utilisateur) utilisateurManager.create();          	
                	request.setAttribute("utilisateur",utilisateur);
     
                	List<Utilisateur> listeUtilisateurs = (List) utilisateurManager.loadList(new SearchCriterion(),false);
                    if(listeUtilisateurs.size()>0){
                        request.setAttribute("listeUtilisateurs", listeUtilisateurs);
                    }
     
                	/**Chargement de la liste des rapports d'activités**/
                	BooleanFilter boolFilter = new BooleanFilter(BooleanFilter.AND);
                	boolFilter.addFilter(new ComparisonFilter("mois",ComparisonFilter.EQUAL,2));
                	boolFilter.addFilter(new ComparisonFilter("annee",ComparisonFilter.EQUAL,2009));
                	criterion.setFilter(boolFilter);
     
                	List<RapportActivite> listRA= (List) rapportActiviteManager.loadList(criterion);
                	/*List<RapportActivite> listeRapportActivite = new ArrayList() ;*/
                	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);
                	   System.out.println("listrecap"+listRecap ); 
     
                	   Recap recap = (Recap) recapManager.create();
                       request.setAttribute("recap",recap);
                       System.out.println("vurecap"+recap);
     
                	   rapportActivite.setListRecap(listRecap) ;
     
                	   int idUS= rapportActivite.getIdUtilisateur();
                	   criterion.setFilter(new ComparisonFilter("id", ComparisonFilter.EQUAL,idUS));
                	   Utilisateur US= (Utilisateur) utilisateurManager.load(criterion);
                	   String prenomN= US.getPrenom()+ " " +US.getNom().toUpperCase();
     
                	   rapportActivite.setPrenomN(prenomN);
     
                	   listRA.set(i,rapportActivite);
                	   /*listeRapportActivite.add(rapportActivite) ;*/
                	}
                	request.setAttribute("listRA",listRA ); 
                	/*request.setAttribute("listRA",listeRapportActivite );*/
     
                }
                forward = mapping.findForward("success");
     
                return forward;
        }
     
     
    }
    merci

  9. #29
    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
    Je ne suis pas certaine que tu comprennes bien ce que tu fais.

    Dans l'Action, tu fais un request.setAttribute("rapportActivite",rapportActivite) dans la boucle de lecture de listRA.
    Ceci signifie que tu vas mettre chaque objet rapportActivite de listRA sous le nom rapportActivite, chacun écrasant le précédent puisqu'ayant le même nom.
    Donc, quand la boucle sera terminée, l'objet rapportActivite stocké dans le scope request ne contiendra que le dernier objet rapportActivite de listRA.
    De plus, au moment où tu le mets dans le scope request, tu ne lui as pas encore affecté de listRecap puisque c'est fait après.

    Donc, logiquement, le premier logic:iterate que tu as codé dans la jsp, soit celui-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
                         <logic:iterate name="rapportActivite" property="listRecap"  id="recap">
    					   <td class="ligne_formulaire_colonne" align="center" width="125px">
    		                  <bean:write  name="recap" property="idUtilR"/>
    	                   </td>	                   
    					</logic:iterate>
    n'affichera rien car au moment où tu mets rapportActivite dans le scope request, listRecap est vide.

    Je ne vois donc pas bien pourquoi tu veux afficher la listRecap du dernier rapportActivite alors qu'avec les logic:iterate imbriqués, tu es sensé afficher la listRecap de tous les objets rapportActivite de la liste listRA.

    Donc, pourrais-tu modifier le code de l'Action 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
                	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);
                	   System.out.println("listrecap"+listRecap ); 
     
                	   Recap recap = (Recap) recapManager.create();
                       System.out.println("vurecap"+recap);
     
                	   rapportActivite.setListRecap(listRecap) ;
     
                	   int idUS= rapportActivite.getIdUtilisateur();
                	   criterion.setFilter(new ComparisonFilter("id", ComparisonFilter.EQUAL,idUS));
                	   Utilisateur US= (Utilisateur) utilisateurManager.load(criterion);
                	   String prenomN= US.getPrenom()+ " " +US.getNom().toUpperCase();
     
                	   rapportActivite.setPrenomN(prenomN);
     
                	   listRA.set(i,rapportActivite);
                	}
                	request.setAttribute("listRA",listRA );
    et supprimer de la jsp le premier logic:iterate sur listRecap.

    EDIT : Remarque, peut-être que je n'ai tout simplement pas compris ce que tu voulais faire exactement.

  10. #30
    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
    J'ai supprimé le premier logic iterate et remplacé mon code par le modifié mais je n'est toujours rien. J'avais mis les request.setAttribute pour voir si ça fonctionnait mieux il n'y était pas initialement. Je ne comprends donc toujours pas pourquoi ce code ne marche pas.

    EDIT: si je pense que vous avez bien compris mon intention vu votre réponse précdente

  11. #31
    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
    Il n'y a rien qui s'affiche du tout ou c'est seulement l'affichage de la listRA qui ne se fait pas ?

    As-tu un message d'erreur ?

    Peux-tu faire un test en supprimant ou en mettant en commentaire cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:text property="prenom" name="utilisateur" size="15px"/>
    parce qu'elle doit logiquement générer une erreur.
    Pour un tag de type text, la valeur mis dans l'attribut name doit correspondre au nom d'un form-bean, ce qui n'est pas le cas.

  12. #32
    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
    Problème résolu!!OUF!!
    En fait l'oubli se situé dans la classe objet au niveau du setter. Lorsque la liste était nulle le setter ne pouvait pas se faire vu que je n'avait pas traité ce cas. Et comme je testé listRecap avant de faire un "rapportActivite.setListRecap" je ne voyais jamais que le set ne se faisait pas.
    En tout cas merci beaucoup du temps que vous m'avez accordé.

  13. #33
    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
    Citation Envoyé par deb31 Voir le message
    OUF!!
    Je n'y croyais plus.

    Citation Envoyé par deb31 Voir le message
    En tout cas merci beaucoup du temps que vous m'avez accordé.
    De rien.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

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