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 :

probleme de recuperation de bean en session


Sujet :

JSF Java

  1. #1
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 59
    Par défaut probleme de recuperation de bean en session
    bonjour, j'ai un problème de récupération de bean
    j'utilise la méthode
    XSpace xs=(XSpace)FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("XSpace");
    et XSpace est déclaré dans le faces-config en session.
    cette méthode, parfois elle marche et parfois non
    et aussi quand je la met dans la partie de declaration il me dit nullpointerException sinon elle marche si je la met dans une methode
    est ce que quelqu'un a rencontré un probleme pareil ?
    j'ai besoin vraiment de votre aide car j'ai bien cherché et je ne trouve pas de solution
    merci d'avance

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    la méthode que tu utilise court-circuite la gestion des beans par jsf. Tu accède directement à la session http, où la variable peut être là ou pas, suivant que jsf l'aie déjà créé ou pas.

    essaie plutot

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FacesContext.getCurrentInstance().getElContext().getVariableMapper().resolveVariable("XSpace").getValue(FacesContext.getCurrentInstance().getElContext());

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    325
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 325
    Par défaut
    tchize, la différence entre le code que tu proposes et celui-ci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    // app est l'Application récupérée par le FacesContext
    // fc est le FacesContext
    MonController controller = (MonController) app.evaluateExpressionGet(fc, "#{monController}", MonController.class);
    c'est quoi ?

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    j'attaque directement le variable resolver, tu passe par le parseur qui va interpréter ton expression et ensuite la résoudre. Ton système permet de fairedes choses plus complexes, comme accéder à une propriété d'un bean jsf, moi je me content du premier niveau. Au final tu choisi seulement celui que tu trouve le plus pratique

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    325
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 325
    Par défaut
    Donc ta solution est certainement plus rapide si on accède directement un managed bean.
    La mienne est plus "générale".

    Merci

  6. #6
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 59
    Par défaut
    merci pour ta reponse rapide d'hier mais j'ai essayé et ca ne marche pas il y a une erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Caused by: javax.faces.FacesException: null MessageFactory. javax.faces.FacesException: null MessageFactory. null
    	at com.sun.faces.config.ManagedBeanFactoryImpl.newInstance(ManagedBeanFactoryImpl.java:282)
    	at com.sun.faces.application.ApplicationAssociate.createAndMaybeStoreManagedBeans(ApplicationAssociate.java:527)
    et voila ma fonction que j'utilise:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public static Object getSessionObjectBean(String bean){
            ELContext el=FacesContext.getCurrentInstance().getELContext();
            return el.getVariableMapper().resolveVariable(bean).getValue(el);
        }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java.lang.NullPointerException
    dans cette classe

Discussions similaires

  1. probleme managed bean en session
    Par *alexandre* dans le forum JSF
    Réponses: 4
    Dernier message: 11/12/2008, 13h19
  2. Réponses: 2
    Dernier message: 15/04/2005, 09h27
  3. [C#] Problème de récupération d'une procédure Oracle
    Par minnieBis dans le forum ASP.NET
    Réponses: 11
    Dernier message: 20/04/2004, 13h48
  4. Probleme de redirection apres fermeture de session
    Par soufienne dans le forum ASP
    Réponses: 3
    Dernier message: 08/04/2004, 10h52
  5. TThread: probleme de recuperation du Handle
    Par code34 dans le forum Langage
    Réponses: 8
    Dernier message: 07/09/2003, 03h04

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