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

JSF Java Discussion :

Problème d'injection de Managed Beans


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 13
    Par défaut Problème d'injection de Managed Beans
    Bonjour à tous,

    Je suis un newbie en java/j2ee (je sors fraichement d’une formation AFPA) et je développe (tout seul ;-() actuellement une appli web d’échanges de services entre particuliers .

    Mon environnement de dev est le suivant : Glassfish 3.1.2 en avec Netbeans7.3 et jsf2 + primefaces 3.5, le tout sur reposant sur une base MySQL avec du JPA.


    Ce que je fais (ou essaye de faire…) :
    ------------------------------------------
    Je saisie une annonce grâce à une jsf (saisieAnnonce.xhtml) couplée à un Managed Bean de niveau session (SaisieAnnonceMB.java).

    Ma jsf appelle une fonction de validation validationAnnonce() qui se trouve dans un autre Managed Bean tjs de niveau session : ValidationAnnonceMB.java

    Dans ce Managed Bean ValidationAnnonceMB.java , j’injecte le Bean de saisie de l’annonce : SaisieAnnonceMB.java (je rajoute bien les getters associés pour le bean injecté) afin d’écrire l’annonce en base.

    A la fin de la validation je détache le bean de saisie (SaisieAnnonceMB.java) du contexte de la facelet, pour avoir une nouvelle saisie vierge possible.


    Mon Pb est le suivant :
    ------------------------
    Tous se passe bien pour la première annonce saisie, par contre lorsque le même user, dans la même session veut saisir une 2eme annonce, mon bean de validation pointe à priori toujours sur la version du bean de saisie de la 1ere annonce…(même adresse ds le debug)

    Ce que j'utilise comme fct pour supprimer le bean de saisie en fin de validation:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    //-------------------------------------------------------------------------
    // suppression d'un Bean Session
    //-------------------------------------------------------------------------
        public static void resetManagedBeans(String nomBean) {
              HttpSession session = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(true);
             String sessionId = session.getId();
             session.removeAttribute(nomBean);
        }

    Je pense que je n'ai pas bien assimilé ts ces concept s, Merci de vos conseils et expertise,

    @+
    GLO

  2. #2
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    Bonjour,

    A moins que je n'ai pas tout capté, pourquoi mettre un bean en session si ce dernier n'est valable que pour une saisie? pourquoi pas simplement en scopeRequest?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 13
    Par défaut
    Peut etre un pb de conception de ma part :
    En fait je saisie mon annonce en 4 temps avec 4 menus differents (4 jsf), une pour les infos de localisation, une autre pour les infos personnelles, une 3eme pour l'annonce, puis une 4eme pour les photos.
    ce n'est qu'aprés avoir saisies ces 4 types d'info que j'alimente ma base avec l'annonce, le client, la localisation du bien et ... les photos.

    Cette validation s'opérant dans un 5eme Bean ;-)

    Voilou...

    Merci
    GLO

  4. #4
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    Pour ces 4 menus tu restes quand même dans le même écran je suppose? Je veux dire est ce qu'entre les menus tu fais un appel serveur?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 13
    Par défaut
    Oui, je fais appel au serveur pour rappatrier des infos depuis la base, comme les departements, villes, codes postaux, catégories, etc...

    C'est pour cela que je reste au niveau session.

    A+
    GLO

  6. #6
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    Ok je vois, à ce moment là reinitialises ton bean plutot ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    FacesContext fc = FacesContext.getCurrentInstance();
    MonBean bean = (MonBean) fc.getExternalContext().getSessionMap().get( "nomDuBeanDansFacesConfig");
    bean = new MonBean();

Discussions similaires

  1. Problème d'injection de stateful bean
    Par jecomprendsrien dans le forum Développement Web en Java
    Réponses: 0
    Dernier message: 31/08/2012, 11h04
  2. problème d'action du managed-bean
    Par RouRa22 dans le forum JSF
    Réponses: 13
    Dernier message: 23/04/2008, 11h53
  3. Réponses: 2
    Dernier message: 03/09/2007, 17h06
  4. Problème à l'initialisation d'un managed-bean
    Par fredlev dans le forum JSF
    Réponses: 2
    Dernier message: 04/07/2007, 13h34
  5. problème d'injection (?) d'un session bean EJB3 dans une servlet
    Par toomsounet dans le forum Wildfly/JBoss
    Réponses: 2
    Dernier message: 11/03/2007, 01h26

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