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 - données entre pages?


Sujet :

JSF Java

  1. #1
    Membre expérimenté
    Avatar de fabszn
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2002
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2002
    Messages : 974
    Points : 1 638
    Points
    1 638
    Par défaut Bonne pratique - données entre pages?
    Hello,

    Je suis débutant sur le framework JSF et je me pose la question suivante comment faite transiter des informations d'une page à une autre?

    Voila le contexte :

    J'ai une page contenant un formulaire de recherche. Cette page est rattachée à un BeanManagé.
    Lors de la validation de mon formulaire j'appelle une méthode de mon beanmanagé qui s'occupe de recupéré les informations saisies et d'appeler la page de résultat de recherche (une autre jsp, avec un autre bean managé).

    Comment dois je faire pour transmettre à la page de résultat les paramètres de recherches?


    Merci d'avance pour votre aide!
    @+

    Fabszn
    Twitter : @fsznajderman

    N'oubliez pas le bouton
    Comment bien poser ses questions sur le forum


  2. #2
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    Une idée :

    Tu as un bean searchBean, qui est lié à la page de recherche.
    Un autre bean, resultBean, lié à la page de résultats.
    A cela, tu ajoutes un autre bean appelé searchCriteria. Ce bean va stocké les paramètres de recherche de ton formulaire.
    Lorsque l'utilisateur remplit le formulaire de recherche, c'est searchCriteria qui est "populé".
    Lorsque tu passes sur l'écran de résultats, searchBean appelle resultBean en lui fournissant, comme paramètre, le searchCriteria.

    C'est comme cela que je procèderais, mais je ne dis pas pour autant que c'est une bonne pratique
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  3. #3
    Membre expérimenté
    Avatar de fabszn
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2002
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2002
    Messages : 974
    Points : 1 638
    Points
    1 638
    Par défaut
    Hello,

    Merci beaucoup pour ta réponse!

    Pour l'instant, je suis dans les clous !

    J'ai effectivement un bean (j'utilise des DTO, mais c'est pareil) qui contient les paramètres de ma recherche. Il est "populé" au moment de la validation du formulaire de recherche. Ensuite je vais créer un navigation rule faisant le lient entre les deux pages.

    Citation Envoyé par romaintaz
    Lorsque tu passes sur l'écran de résultats, searchBean appelle resultBean en lui fournissant, comme paramètre, le searchCriteria.
    Cette phrase m'intéresse particulièrement. Lorsque tu écrits que searchBean appelle resultBean, tu veux parler d"un lien fait avec une navigation rule?
    Si oui, par quel biais tu passes en paramètre le searchCriteria?
    En l'insérant dans la request? en passant par la session?

    Est ce que tu aurais, s'il te plait, un exemple de code?

    Merci d'avance!
    @+

    Fabszn
    Twitter : @fsznajderman

    N'oubliez pas le bouton
    Comment bien poser ses questions sur le forum


  4. #4
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    Voilà un exemple de code (l'ID du bean resultBean est "resultBean") :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public void initResultBeanFromSearchBean() {
        ResultBean bean = (ResultBean) FacesContextUtils.getWebApplicationContext(FacesContext.getCurrentInstance()).getBean("resultBean");
        bean.setSearchCriteria(this.getSearchCriteria());
    }
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  5. #5
    Membre expérimenté
    Avatar de fabszn
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2002
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2002
    Messages : 974
    Points : 1 638
    Points
    1 638
    Par défaut
    Hello,

    Merci pour ta réponse!

    public void initResultBeanFromSearchBean() {
    ResultBean bean = (ResultBean) FacesContextUtils.getWebApplicationContext(FacesContext.getCurrentInstance()).getBean("resultBean");
    bean.setSearchCriteria(this.getSearchCriteria());
    }

    La classe FacesContextUtils est issue du framework Spring. Comme je n'utilise pas Spring, je vais essayer de traduire le bout de code que tu m'as donné pour le reproduire dans mon contexte d'application.

    Donc via le contexte d'application (issue du FacesContext) je récupère l'instance de bean resultSearch (qui contient une methode setSearchCriteria().

    C'est ca?

    Mais est ce que l'instanciation du resultBean n'est pas gérée par spring



    Merci d'avance!
    @+

    Fabszn
    Twitter : @fsznajderman

    N'oubliez pas le bouton
    Comment bien poser ses questions sur le forum


  6. #6
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    Oui, en effet, mon code fonctionne avec Spring

    L'instanciation du bean se fait par Spring, oui. Mais dans mon exemple, tu ne fais pas d'instanciation de bean, tu initialises un bean déjà existant, fourni (dans mon cas) par Spring.
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  7. #7
    Membre expérimenté
    Avatar de fabszn
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2002
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2002
    Messages : 974
    Points : 1 638
    Points
    1 638
    Par défaut
    Hello,

    Merci pour tes réponses!
    J'ai compris le fonctionnement!
    @+

    Fabszn
    Twitter : @fsznajderman

    N'oubliez pas le bouton
    Comment bien poser ses questions sur le forum


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

Discussions similaires

  1. passage des données entre pages jsp
    Par franco9 dans le forum Struts 2
    Réponses: 0
    Dernier message: 10/07/2012, 10h36
  2. transmission de données entre pages
    Par laurentSc dans le forum Langage
    Réponses: 5
    Dernier message: 09/07/2010, 10h28
  3. Transfert de données entre pages
    Par cambonjp dans le forum Langage
    Réponses: 6
    Dernier message: 07/10/2007, 17h50
  4. passage de données entre page
    Par flatron dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 27/01/2006, 13h50
  5. Passage de données entre deux pages
    Par spica92 dans le forum ASP
    Réponses: 2
    Dernier message: 08/09/2005, 14h38

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