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

Servlets/JSP Java Discussion :

Accès aux objets d'un bean depuis un autre


Sujet :

Servlets/JSP Java

  1. #1
    Membre averti Avatar de argonath
    Homme Profil pro
    Ingénieur d'Etudes
    Inscrit en
    Juillet 2009
    Messages
    248
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'Etudes
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2009
    Messages : 248
    Points : 381
    Points
    381
    Par défaut Accès aux objets d'un bean depuis un autre
    Bonjour,

    comment accéder depuis un bean, à un objet instancié par un autre sans qu'il soit statique (ici je dois accéder à une liste de mon contexte application depuis le constructeur du contexte session ).

    J'imagine qu'il faut récupérer l'instance générée par le contexte

  2. #2
    Membre confirmé
    Avatar de link256
    Profil pro
    Développeur Java
    Inscrit en
    Février 2003
    Messages
    596
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2003
    Messages : 596
    Points : 642
    Points
    642
    Par défaut
    il faut passer ton premier bean ou son objet éventuellement en paramètre de ton second bean

  3. #3
    Membre averti Avatar de argonath
    Homme Profil pro
    Ingénieur d'Etudes
    Inscrit en
    Juillet 2009
    Messages
    248
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'Etudes
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2009
    Messages : 248
    Points : 381
    Points
    381
    Par défaut
    Citation Envoyé par link256 Voir le message
    il faut passer ton premier bean ou son objet éventuellement en paramètre de ton second bean
    en paramètre du constructeur ?
    dans tout les cas il faudra à un moment que je désigne d'une façon ou d'une autre l'instance du bean application, ce n'est pas facesContext.getInstance().quelquechose ? c'est ca que je cherche

  4. #4
    Membre confirmé
    Avatar de link256
    Profil pro
    Développeur Java
    Inscrit en
    Février 2003
    Messages
    596
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2003
    Messages : 596
    Points : 642
    Points
    642
    Par défaut
    En paramètre du constructeur oui éventuellement

  5. #5
    Membre averti Avatar de argonath
    Homme Profil pro
    Ingénieur d'Etudes
    Inscrit en
    Juillet 2009
    Messages
    248
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'Etudes
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2009
    Messages : 248
    Points : 381
    Points
    381
    Par défaut
    ma question c'est comment je peux le faire justement ^^

    je n'ai pas pu trouver par quel biais on désignait l'instance d'un contexte, si une fonction (par exemple de facesContext ) permettait de les récupérer ou autre.

    En règle générale d'ailleurs, il y a un truc qui me parait conceptuellement étrange (entre ça, et le fait qu'apparement (ou alors je n'ai juste jamais trouvé comment ) on ne puisse pas passer de paramètres aux méthodes appelées depuis les jsp ) c'est que tout cet aspect de JEE me parait étonnamment statique, on perd un peu la dimension objet non ?

    ce que je veux dire c'est que l'exemple type c'est 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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    Exemple complet : TestBean.jsp
     
    <html>
    <HEAD>
    <TITLE>Essai d'instanciation d'un bean dans une JSP</TITLE>
    </HEAD>
    <body>
    <p>Test d'utilisation d'un Bean dans une JSP </p>
    <jsp:useBean id="personne" scope="request" class="test.Personne" />
    <p>nom initial = <%=personne.getNom() %></p>
    <%
    personne.setNom("mon nom");
    %>
    <p>nom mise à jour = <%= personne.getNom() %></p>
    </body>
    </html>
     
    Exemple complet : Personne.java
     
    package test;
    public class Personne {
      private String nom;
      private String prenom;
     
      public Personne() {
        this.nom = "nom par defaut";
        this.prenom = "prenom par defaut";
      }
     
      public void setNom (String nom) {
        this.nom = nom;
      }
     
      public String getNom() {
        return (this.nom);
      }
     
      public void setPrenom (String prenom) {
        this.prenom = prenom;
      }
     
      public String getPrenom () {
        return (this.prenom);
      }
    }
    il est quand même dommage de ne pas pouvoir passer les valeurs directement dans les constructeurs "coté java" mais de devoir donner les valeurs des attributs :
    1. en passant par les setter
    2. depuis la JSP parceque je ne peux pas récupérer en java l'instance courante de mon autre bean

  6. #6
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par argonath Voir le message
    ...
    (ici je dois accéder à une liste de mon contexte application depuis le constructeur du contexte session )...
    Qu'appelles-tu le constructeur du contexte session ?

    Si tu as une référence sur l'objet HttpSession, il n'y a aucun problème pour faire ça, tu fais session.getServletContext() et tu as ton contexte application.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre confirmé
    Avatar de link256
    Profil pro
    Développeur Java
    Inscrit en
    Février 2003
    Messages
    596
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2003
    Messages : 596
    Points : 642
    Points
    642
    Par défaut
    De plus rien ne t'empêche dans ton exemple de rajouter un constructeur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public Personne(String nom,String prenom) {
        this.nom = nom;
        this.prenom = prenom;
      }
    Autre chose dans ton exemple il n'y a pas trop d'interet d'instancié un bean au niveau de la JSP.

    Tu pourrais faire ca de la manière suivante :

    Un formulaire avec la saisie du nom et prénom (dans une première JSP )qui à la validation sera redirigé sur une servlet qui récupère le nom& prénom instanciera l'objet Personne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Personne personne = new Personne(request.getParameter("nom"),request.getParameter("prenom"));
    request.setParameter("MaPersonne",personne);
    Il faudrait au passage contrôler les valeurs de nom et prenom avant la création du consstructeur.

    Cette servlet te redirige sur une seconde 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
     
    Exemple complet : TestBean.jsp
    <jsp:useBean id="personne" scope="request" class="test.Personne" />
    <html>
    <HEAD>
    <TITLE>Essai d'instanciation d'un bean dans une JSP</TITLE>
    </HEAD>
    <body>
    <p>Test d'utilisation d'un Bean dans une JSP </p>
     
    <p>nom initial = <%=personne.getNom() %></p>
    <p>nom mise à jour = <%= personne.getNom() %></p>
    </body>
    </html>
     
    ou 
     
     
    <html>
    <HEAD>
    <TITLE>Essai d'instanciation d'un bean dans une JSP</TITLE>
    </HEAD>
    <body>
    <p>Test d'utilisation d'un Bean dans une JSP </p>
     
    <p>nom initial = <bean:write name="personne" property="nom" scope="request"/></p>
    <p>nom mise à jour = <bean:write name="personne" property="prenom" scope="request"/></p>
    </body>
    </html>

  8. #8
    Membre averti Avatar de argonath
    Homme Profil pro
    Ingénieur d'Etudes
    Inscrit en
    Juillet 2009
    Messages
    248
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'Etudes
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2009
    Messages : 248
    Points : 381
    Points
    381
    Par défaut
    Merci pour ces éléments de réponse, je regarde ça.

  9. #9
    Membre averti Avatar de argonath
    Homme Profil pro
    Ingénieur d'Etudes
    Inscrit en
    Juillet 2009
    Messages
    248
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'Etudes
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2009
    Messages : 248
    Points : 381
    Points
    381
    Par défaut
    Si vos remarques sont instructives, en fait elles ne collent pas à ma situation.

    L'exemple que j'avais pris illustrait en fait dans pas mal de tutos l'instanciation d'un bean, avec un constructeur qui affecte des valeurs par défaut aux paramètres, ceux ci recevant leurs véritables valeurs "à coté"

    En fait ce que me link256 ne va pas dans mon cas car ce que je veux faire ne concerne pas un formulaire mais bien deux managedBean

    pour donner une idée plus claire de ma situation :

    premier bean (portée application) contenant une liste d'objets (par exemple des personnes nom/prenom) constamment mis à jour par l'appli.

    second bean (portée session) dans lequel un objet "courant" doit être défini dans le constructeur en prenant le premier élément de la liste du bean application.

    J'aimerais éviter de trainer des trucs static donc il faut que je retrouve le premier element de cette liste d'une façon ou d'une autre dans le constructeur (Donc ma question est : est ce qu'il existe une méthode JAVA qui renvoie l'instance courante d'un bean ? (ici de mon bean ayant une portée application ) )

    ou bien, il faudrait que le constructeur reçoive en paramètre la liste, via la JSP. (mais
    1/les constructeurs sont appelés "automatiquement" à l'établissement d'une session.
    2/Je ne sais pas comment donner dans une jsp un paramètre à l'appel d'une méthode d'un bean (surtout si ce paramètre est un objet d'un autre bean)
    )

  10. #10
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Je suppose que tu utilises <jsp:useBean>, c'est bien ça ?
    Voici une méthode pour faire ce que tu cherches...
    Il suffit que ton bean implémente HttpSessionBindingListener, comme dans cet exemple
    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
     
    package obia.ajax;
     
    import javax.servlet.http.HttpSessionBindingEvent;
    import javax.servlet.http.HttpSessionBindingListener;
     
    public class User implements HttpSessionBindingListener
    {
        private String name;
     
        public User()
        {
            super();
        }
     
     
        public String getName()
        {
            return name;
        }
     
     
        public void setName(String name)
        {
            this.name = name;
        }
     
     
        @Override
        public void valueBound(HttpSessionBindingEvent arg0)
        {
            String applicationName = (String)arg0.getSession().getServletContext().getAttribute("APPLICATION_NAME");
            if (applicationName == null)
            {
                applicationName = "Copyright OBia, 2009, tous droits réservés";
                arg0.getSession().getServletContext().setAttribute("APPLICATION_NAME", applicationName);
            }
            name = applicationName;
        }
     
        @Override
        public void valueUnbound(HttpSessionBindingEvent arg0)
        {
     
        }
    }
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  11. #11
    Membre averti Avatar de argonath
    Homme Profil pro
    Ingénieur d'Etudes
    Inscrit en
    Juillet 2009
    Messages
    248
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'Etudes
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2009
    Messages : 248
    Points : 381
    Points
    381
    Par défaut
    le servletContext et le contexte des managedBean c'est la même chose ?

    Je croyais que dans ce cas là ce serait plutot WebConfiguration que ServletConfig...

  12. #12
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Ce que je t'ai mis dans l'exemple correspond au scope "application" des pages JSP
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  13. #13
    Membre averti Avatar de argonath
    Homme Profil pro
    Ingénieur d'Etudes
    Inscrit en
    Juillet 2009
    Messages
    248
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'Etudes
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2009
    Messages : 248
    Points : 381
    Points
    381
    Par défaut
    Citation Envoyé par OButterlin Voir le message
    Ce que je t'ai mis dans l'exemple correspond au scope "application" des pages JSP
    donc je met l'équivalent de ce code pour ma liste dans le bean application et dans mon autre bean je récupère la liste avec quoi ?

  14. #14
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Non, c'est le bean session qui doit utiliser ce code.
    Le bean application devrait être créé par une servlet à démarrage automatique, c'est ce qui me paraît le plus adapté à ce genre d'initialisations.
    Au cas où tu n'as pas encore utilisé ça, il suffit de rajouter dans le web.xml, au niveau de la définition de la servlet, la directive <load-on-startup>, comme dans cet exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <servlet>
      <servlet-name>Loader</servlet-name>
      <servlet-class>obia.common.objects.Loader</servlet-class>
      <load-on-startup>1</load-on-startup>
    </servlet>
    Comme ceci, dès le démarrage du serveur, les listes seront initialisées.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  15. #15
    Membre averti Avatar de argonath
    Homme Profil pro
    Ingénieur d'Etudes
    Inscrit en
    Juillet 2009
    Messages
    248
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'Etudes
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2009
    Messages : 248
    Points : 381
    Points
    381
    Par défaut
    Citation Envoyé par OButterlin Voir le message
    Le bean application devrait être créé par une servlet à démarrage automatique [...] Comme ceci, dès le démarrage du serveur, les listes seront initialisées.
    Ce n'est pas ce qui est fait tout le temps ? (Que le constructeur du bean application soit appelé dès le démarrage du serveur, celui du bean session lors de la connexion etc... )

    De plus si la liste présente dans le contexte application doit bien être instanciée et initialisée au démarrage du serveur, ce n'est pas le cas de celle de portée session non ?

    J'ai eu l'idée aussi qui me paraissait autrement plus simple de mettre en haut de page de la jsp quelquechose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <jsp:setProperty name="temp" property="listeActeurs" value="#{contexteApp.listeActeurs}"/>
    Ou temp est le nom donné au bean de portée session et contexteApp celui de portée application.

    Mais j'ai une NullPointerException ce qui m'étonne car mes constructeurs normalement ont déjà été appelés au moment ou cette ligne de la jsp est vue...

    edit : réussi à faire marcher mon essai avec setProperty en ajoutant un usebean.
    Donc résolu, mais un peu à l'arrache... j'ai quand même de grosses lacunes sur les méthodes qu'on a évoqué ^^'

  16. #16
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    C'est bizarre ta façon de faire...
    Le fait d'utiliser <jsp:useBean> avec un contexte application fonctionne effectivement si tu n'as pas besoin d'autre chose dans le contexte mais la servlet me paraît une meilleure solution.
    L'autre différence potentielle réside dans le fait que si le chargement de la liste est long, le premier utilisateur qui la demandera patientera un moment puisqu'il faut, dans ton cas, qu'un utilisateur demande au travers d'une page cette liste.
    Un autre problème pourrait venir de fait que plusieurs utilisateurs la demande en même temps, puisque l'initialisation n'est pas terminée, le bean risque (à vérifier) de ne pas exister encore et donc d'être instancié plusieurs fois...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  17. #17
    Membre averti Avatar de argonath
    Homme Profil pro
    Ingénieur d'Etudes
    Inscrit en
    Juillet 2009
    Messages
    248
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'Etudes
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2009
    Messages : 248
    Points : 381
    Points
    381
    Par défaut
    non le usebean est pour le contexte session.

    Enfin oui je suis bien conscient que la servlet serait mieux, mais je m'y perd ^^'

  18. #18
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par argonath Voir le message
    non le usebean est pour le contexte session.

    Enfin oui je suis bien conscient que la servlet serait mieux, mais je m'y perd ^^'
    Là, c'est moi qui me perd...
    Où est initialisée ta liste du contexte application ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  19. #19
    Membre averti Avatar de argonath
    Homme Profil pro
    Ingénieur d'Etudes
    Inscrit en
    Juillet 2009
    Messages
    248
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'Etudes
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2009
    Messages : 248
    Points : 381
    Points
    381
    Par défaut
    eh bien c'est là je crois qu'on se comprenait mal ^^

    tout ce qui concerne le contexte application, c'est le constructeur du bean de portée application qui les instancie et initialise. Celui-ci est appelé dès le démarrage du serveur non ? (c'est peut être parceque j'utilise jsf qu'il fait ça tout seul avec une servlet "implicite" )

  20. #20
    Membre confirmé
    Avatar de link256
    Profil pro
    Développeur Java
    Inscrit en
    Février 2003
    Messages
    596
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2003
    Messages : 596
    Points : 642
    Points
    642
    Par défaut
    Jamais touché à JSF donc je ne sais pas comment cela fonctionne mais ce que tente de t'expliquer OButterlin qui me reprendra si je me trompe est que ton bean qui doit se situer au niveau du contexte applicatif doit être initialisé.

    La solution proposée par OButterlin est de passer par une Servlet
    l'option <load-on-startup>1</load-on-startup>
    permet de dire que l'on veut que la Servlet soit exécuter au démarrage de l'application sur le serveur (si à 0 elle sera appelée que si une action/requête y fait référence,voir ne pas du tout être utilisée).

    Donc cette Servlet va récupérer ta liste d'utilisateur et la placer au niveau du contexte applicatif, que tu pourras mettre à jour.

    L'avantage comme cela a été dit est que le premier utilisateur n'aura pas a attendre la génération de la liste et son placement dans le contexte applicatif.

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

Discussions similaires

  1. Accéder aux objets d'un plugin depuis un autre programme Java
    Par abdessami3e dans le forum Eclipse Platform
    Réponses: 6
    Dernier message: 27/12/2013, 18h11
  2. Accès aux objets de l'IDE depuis un plugin
    Par philippeh dans le forum Eclipse Platform
    Réponses: 3
    Dernier message: 16/04/2008, 14h14
  3. accès aux objets js des pages visitées et autre
    Par Lancelot du Lac dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 18/03/2008, 08h33
  4. [c#] Méthode d'accès aux objets de ma form1
    Par SDuh dans le forum Windows Forms
    Réponses: 5
    Dernier message: 21/03/2006, 11h21
  5. [TGroupBox] Accès aux objets
    Par JediKerian dans le forum Composants VCL
    Réponses: 3
    Dernier message: 04/04/2003, 14h34

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