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 :

Avis solution: Passage de paramètres d'une page à l'autre [Débutant(e)]


Sujet :

JSF Java

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2012
    Messages : 9
    Par défaut Avis solution: Passage de paramètres d'une page à l'autre
    Bonjour,

    Je débute avec JSF et désire réaliser une application web dans laquelle je crée/edit/supprime des Users et des Profiles d'utilisateur.

    Mon problème se situe au moment de l'édition, je souhaite que l'on désigne un user à partir d'une liste, et que cela me redirige vers une page formulaire avec des inputText dans lesquels seraient pré insérées les valeurs.

    Tout marche bien pour la création. J'ai un managed bean "UserController" en @ViewScoped qui prends les valeurs de l'inputText via #{userController.user.userName}.

    Je voudrais reprendre la même démarche pour l'édition en récupérant au préalable dans userController.user le User sélectionné dans la liste à la page précédente.

    J'ai trouvé plusieurs solutions mais ne sait pas sur quoi partir, j'aimerais l'avis de personnes plus expérimentées.

    Parmi ces solutions il y a:
    -création d'un bean @SessionScoped;
    -passage de l'ID du User par l'URL;
    -création d'un champ booléen "token" avec lequel je retrouve l'User (la solution "maison")...


    Je ne vois pas exactement comment je pourrais récupérer dans mon userController le user avant que la page se charge pour afficher des valeurs dans les inputText.

    Pour conclure, une petite question, si je fais quelque chose comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    @SessionScoped
    public class SessionBean(){
     
        private UserController uc; //qui est @ViewScoped
     
    }
    Que se passera-t'il? J'aurais un bean sessionScoped en mémoire de mon serveur; est-ce que uc sera bien ré instancié à chaque changement de page?

    Merci d'avance pour tout éclaircissement!

    Cordialement.

  2. #2
    Membre très actif Avatar de omarcisses
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2007
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2007
    Messages : 227
    Par défaut
    Je pense que ce code t'aidera
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <h:commandButton action="#{service.edit}" value="editer">
     
    	      <f:setPropertyActionListener target="#{user.username}" value="maValeur" />
     
    	  </h:commandButton>
    setPropertyActionListener permet de setter une valeur a ton target quand on click sur ton bouton

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2011
    Messages : 790
    Par défaut
    si j'ai très bien compris pour la récupération de n'importe quel user il faut que vous créer tout d'abord une méthode de recherche exemple(findbyCriteria...)selon id du user que vous le mettez dans le DAO ou autre..
    ensuite vous créer un objet user qui va appeler la méthode de recherche via le dao
    Enfin vous tester si le user est différent du null vous afficher les résultats exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setAdresse(user.getAdresse());
    J’espère que ça vous aiderai un peu

  4. #4
    Membre très actif Avatar de omarcisses
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2007
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2007
    Messages : 227
    Par défaut
    Citation Envoyé par ahmedpa Voir le message
    si j'ai très bien compris pour la récupération de n'importe quel user il faut que vous créer tout d'abord une méthode de recherche exemple(findbyCriteria...)selon id du user que vous le mettez dans le DAO ou autre..
    ensuite vous créer un objet user qui va appeler la méthode de recherche via le dao
    Enfin vous tester si le user est différent du null vous afficher les résultats exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setAdresse(user.getAdresse());
    J’espère que ça vous aiderai un peu
    Avec la methode que je lui ai donner il peut passer automatiquement un user car setPropertyActionListener petmet aussi de setter un objet

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2012
    Messages : 9
    Par défaut
    Citation Envoyé par omarcisses Voir le message
    Je pense que ce code t'aidera
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <h:commandButton action="#{service.edit}" value="editer">
     
    	      <f:setPropertyActionListener target="#{user.username}" value="maValeur" />
     
    	  </h:commandButton>
    setPropertyActionListener permet de setter une valeur a ton target quand on click sur ton bouton
    Merci!

    Pour ceux que ça intéresserait j'ai créé un bean en @SessionScoped à qui j'ai envoyé l'User que je souhaitais récupérer grâce à <f:setProperty...>.
    Ensuite dans mon @ViewScoped je le récupère avec une méthode init:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public void init(){
        this.user = (User) FacesContext.getCurrentInstance().getApplication().evaluateExpressionGet(FacesContext.getCurrentInstance(),"#{sessionController.user}", User.class); //sessionController est le SessionScoped ManagedBean.
    }
    Et ensuite je l'appelle avec #{userController.init()} dans ma page editUser.xhtml... Je l'ai mis parmis le texte et ça marche bien, je sais pas s'il y a une façon plus propre d'appeler du code au chargement de la page.

  6. #6
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2011
    Messages : 790
    Par défaut
    Citation Envoyé par omarcisses Voir le message
    Avec la methode que je lui ai donner il peut passer automatiquement un user car setPropertyActionListener petmet aussi de setter un objet
    Ah ok j'ai compris en plus c'est beaucoup plus facile

  7. #7
    Membre très actif Avatar de omarcisses
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2007
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2007
    Messages : 227
    Par défaut
    Oui je suis d'accord car tu as plus besoin de te balader avec des id et faire des va et viens entre le métier et le dao c'est pratique

  8. #8
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2011
    Messages : 790
    Par défaut
    Citation Envoyé par omarcisses Voir le message
    Oui je suis d'accord car tu as plus besoin de te balader avec des id et faire des va et viens entre le métier et le dao c'est pratique
    ouais Voilà c'est exactement !
    Merci comme même pour l'idée !

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

Discussions similaires

  1. Passage de paramètre d'une page à une autre
    Par SonnyFab dans le forum ASP.NET
    Réponses: 4
    Dernier message: 17/06/2010, 17h10
  2. passage de paramètre d'une page à une autre
    Par scania113H dans le forum JSF
    Réponses: 9
    Dernier message: 18/03/2010, 16h27
  3. Réponses: 26
    Dernier message: 20/01/2010, 10h38
  4. Réponses: 3
    Dernier message: 17/08/2007, 12h45
  5. Réponses: 6
    Dernier message: 29/09/2006, 10h18

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