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 :

[Bonne pratique] - Scope session


Sujet :

JSF Java

  1. #1
    Membre averti Avatar de JWillow
    Inscrit en
    Juin 2003
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 57
    Par défaut [Bonne pratique] - Scope session
    Bonjour,

    Voilà j'aimerais savoir comment bien gérer les beans en session ?
    Pour être plus précis j'ai actuellement pour 1 page (jsf) 1 Controller (scope session). Je navigue de page en page donc plein de controller sont mis en session mais là où avec Struts celui-ci géré tous ça (la suppression des forms et des controller en session lorsqu'on change de page) ici tous les controller restent en session. Donc qu'elle est la bonne pratique pour retrouver un comportement proche de Struts ? Dans tous les exemples que je peux trouver c tjs une ou deux pages qui pointent vers le même controller. Il me semble que cet aspect n'est pas souvent abordé.

    PS : Technique je sais comment mettre un bean en session à null mais c cette action manuellement plus le fait de devoir gérer seul de quelle controller on vient qui me gène.

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 511
    Par défaut
    Pour ma part, j'ai un controller en request pour chaque page. Et un controller globale en session pour toutes l'appli. Les controller en request piochent dans le controller session. Et j'utilise aussi l'injection de bean pour passer certaines infos d'un controller request à un autre.

  3. #3
    Membre confirmé
    Inscrit en
    Août 2005
    Messages
    159
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 159
    Par défaut
    Pour ma part j'utilise le composant t:savestate de myfaces.
    C'est une bonne alternative au session bean

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 172
    Par défaut
    je suis très intéressé par cette question. Je trouve également que ces aspets de conception ne sont pas beaucoup abordés (ou j'ai pas cherché assez... ).

    En plus des solutions de Shivan et ouedmouss, j'ai également attendu certains utiliser plusieurs beans pour chaque page, une par fonctionnalité de la page.

    Il serait vraiment intéressant d'avoir d'autres avis éclairés sur la question. Peut-être y a t il des cas d'utilisations appropriés pour chacune des solutions citées.
    A votre avis ?

  5. #5
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Par défaut
    A mon avis la solution le plus propre est d'un bean par page en supprimant l ajout des composants JSF dans l initalisation

    ce que j aimais justement pas sur Struts c'est la définition d'une classe par action alors que celles-ci sont liés au même objet

    c'est l anti these de la prog objet ou tu détermines une classe par action

    edit ca represent plus un pattern command mais c'est tellement inutile ...

    une application devrait comporter qu un seul controller qui se charge de dispatcher les actions (donc dans ce sens je rejoins Shivan)

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 172
    Par défaut
    Qu'entends tu par "en supprimant l ajout des composants JSF dans l initalisation
    " ?

    Tu les mets en session ou en requete tes beans ?

  7. #7
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Par défaut
    je parlais du binding

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 172
    Par défaut
    Shivan, peux-tu m'expliquer comment tu fais pour que tes beans en request puissent accéder à ton bean en session ?

  9. #9
    Membre confirmé
    Inscrit en
    Août 2005
    Messages
    159
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 159
    Par défaut
    J'imagine que pour acceder a la session beans on peut avoir une classe du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public class Utils {
        public static Object getSessionBean(String nomBean){
            FacesContext ctx=FacesContext.getCurrentInstance();
            ExternalContext etx=ctx.getExternalContext();
            HttpSession session=(HttpSession) etx.getSession(true);
            return session.getAttribute(nomBean);
        }
     
    }
    Et dans un beans on pourra appeler
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
       MonBeanSession beanSession=(MonBeanSession)Utils.getSessionBean("nom du bean session");

  10. #10
    Membre confirmé
    Profil pro
    Analyste programmeur
    Inscrit en
    Novembre 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Analyste programmeur

    Informations forums :
    Inscription : Novembre 2006
    Messages : 197
    Par défaut
    bonjour a tous,

    je suis d'acord avec ouedmouss, et je fait presque le meme principe que lui mais j'utilise des variables qui sont des paramaetres ou autres dans la session, ensuite
    je les appelles :

    FacesContext fc = FacesContext.getCurrentInstance();
    ExternalContext ec= fc.getExternalContext();
    int mat=((UserInfo) ec.getSessionMap().get("UserInfo")).getMat();

    et j'utilise un bean pour chaque page

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 172
    Par défaut
    Je crois que je vais reprendre l'idée du bean transverse en session. En plus ça permet de controler facilement tout ce qui est mis en session, c'est un point non négligeable.

  12. #12
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Par défaut
    pas besoin d un tel appel si ton bean est correctement définit dans ton applicationContext et si tu appliques la règle un bean par page donc aucune invocation nécessaire

Discussions similaires

  1. Session php et BD bonne pratique
    Par Tendhor57 dans le forum Langage
    Réponses: 5
    Dernier message: 11/04/2013, 16h53
  2. [PHP 5.3] Sessions - bonnes pratiques pour un débutant
    Par totale_eclipse dans le forum Langage
    Réponses: 11
    Dernier message: 12/07/2011, 00h27
  3. JSF et bonnes pratiques sur le scope des beans
    Par RiiiDD dans le forum JSF
    Réponses: 2
    Dernier message: 22/03/2011, 10h16
  4. Bonnes pratiques SessionFactory / Session
    Par balmeyer dans le forum Persistance des données
    Réponses: 4
    Dernier message: 04/02/2009, 17h51
  5. [session hibernate]bonnes pratiques
    Par centoo dans le forum Hibernate
    Réponses: 6
    Dernier message: 06/05/2008, 16h25

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