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 :

JSF - Spring : gestion de navigation


Sujet :

JSF Java

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 100
    Par défaut JSF - Spring : gestion de navigation
    Bonjour,
    Question: Comment retirer un bean de la session JSF??

    Mon besoin c'est de retirer le bean de la session JSF lors de la navigation afin de forcer JSF/Spring de créer un nouveau bean si on tente d'aller sur la page une deuxième fois

    Le problème : impossible de retirer le bean de la session:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("demoBean1"))
    retourne null tout le temps

    voici la config Spring
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <bean id="demoBean1" class="fr.demo.beans.DemoBean1">
            <property name="demoService">
                <ref bean="demoService"/>
            </property>
        </bean>
    PS: si quelqu'un aurait une autre solution pour bien gérer l'historique de navigation je suis preneur

    Merici d'avance

  2. #2
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    Si le bean est géré par spring, tu dois utiliser spring pour le recuperer, sinon par JSF, un exemple est disponible dans la
    tu peux recuperer n'importe quel bean à l'aide de Elresolver.

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 100
    Par défaut
    Bonjour
    merci Sniper37 d'avoir répondu
    FAQ JSF ou Spring ??

    la récuperation du bean ne me suffit pas,en fait mon besoin c'est de supprimer le bean de la session JSF.

  4. #4
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    Je parle de la Faq JSP, mais, pour spring aussi la réponse est disponible dans la faq:

    voilà le lien


    Pour le retirer tu peux faire mettre la valeur à null tu peux le faire directement en utilisant l'objet session ou :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    FacesContext context = FacesContext.getCurrentInstance().getCurrentInstance();
     
    ValueExpression value = context.getApplication().getExpressionFactory().createValueExpression(context.getELContext(), "#{monBean}", MonBean.class);
     
    value.setValue(context.getELContext(),null);

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 100
    Par défaut
    Bonjour :
    ça peut être utile à quelqu'un , voila comment j'ai procédé pour résoudre mon pb :

    en fait, pour que le bean (géré par spring) soit bien accessible et manipulé directement dans le code "JSF", il faut:
    dans le fichier xml
    - Spécifier le bon Schémas
    - Déclarer le scope pour les beans:
    applicationContext.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
     
    	<bean id="demoBean1" class="fr.demo.beans.DemoBean" scope="session">
    		<property name="demoService">
    			<ref bean="demoService"/>
    		</property>
    	</bean>
    <bean id="demoService" class="fr.demo.services.DemoServiceImpl"/>
    </beans>
    et dans le code java (JSF) les beans sont accessibles avec le bout de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ExternalContext exContext = FacesContext.getCurrentInstance().getExternalContext();
    exContext.getSessionMap().get("demoBean1");

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 15
    Dernier message: 29/01/2014, 18h42
  2. [JSF + ADF]Gestion d'un application module
    Par bertlef dans le forum JSF
    Réponses: 2
    Dernier message: 13/03/2009, 12h15
  3. Réponses: 4
    Dernier message: 10/09/2006, 10h49
  4. [JSF-SPRING-HIBERNATE] Freeze . .
    Par gondek dans le forum JSF
    Réponses: 5
    Dernier message: 04/09/2006, 14h04
  5. [Forms] : Gestion de Navigation entre module
    Par patmaba dans le forum Forms
    Réponses: 12
    Dernier message: 09/04/2004, 14h09

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