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 :

Récupérer données dans une autre page


Sujet :

JSF Java

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2012
    Messages : 93
    Par défaut Récupérer données dans une autre page
    Salut,
    j'ai une formulaire pour ajouter un étudiant dans la base de données, je veux quand j'ajouter l'étudiant, dans le même temps l'étudiant sera récupérée pour afficher leur formation dans l'autre page welcome
    je fais
    <f: liaison actionListener = "# {beanEtudiant.getEtd (beanEtudiant.etudiant.id)}" />
    Mais ça ne fonctionne pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
    @Entity
    public class Etudiant implements java.io.Serializable {
     
        @Id
        @GeneratedValue(strategy = GenerationType.AUTO, generator = "ID")
        @SequenceGenerator(name = "ID", sequenceName = "ID_SQ")
        private int id;
        private String nom;
        private String prenom;
        private int age;
     
        public int getId() {
            return id;
        }
     
        public void setId(int id) {
            this.id = id;
        }
     
        public String getNom() {
            return nom;
        }
     
        public void setNom(String nom) {
            this.nom = nom;
        }
     
        public String getPrenom() {
            return prenom;
        }
     
        public void setPrenom(String prenom) {
            this.prenom = prenom;
        }
     
        public int getAge() {
            return age;
        }
     
        public void setAge(int age) {
            this.age = age;
        }
     
    }

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    public class ImplEtudiant implements IEtudiant{
     
        @Override
        public void ajoutEtudiant(Etudiant etd) {
            Session session = HibernateUtil.getSessionFactory().openSession();
            Transaction tx = session.beginTransaction();
            session.save(etd);
            tx.commit();
            session.close();
        }
     
        @Override
        public Etudiant getEtudiant(int id) {
            Session session = HibernateUtil.getSessionFactory().openSession();
            Etudiant etd = (Etudiant) session.get(Etudiant.class, id);
            session.close();
            return etd;
        }
    }

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    @ManagedBean
    @ViewScoped
    public class BeanEtudiant {
     
        private IEtudiant dao;
        private Etudiant etudiant;
        private List<Etudiant> etudiants;
     
        @PostConstruct
        public void init() {
            etudiant = new Etudiant();
            dao = new ImplEtudiant();
            etudiants = new ArrayList<Etudiant>();
        }
     
        public void ajouc() {
            dao.ajoutEtudiant(etudiant);
            etudiant = new Etudiant();
        }
     
        public Etudiant getEtd(int id) {
            etudiant = dao.getEtudiant(id);
            return etudiant;
        }
    index.xhtml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <h:form>
                <h:panelGrid>
                    <h:outputText value="nom:" />
                    <h:inputText value="#{beanEtudiant.etudiant.nom}" />
                    <h:outputText value="prenom:" />
                    <h:inputText value="#{beanEtudiant.etudiant.prenom}" />
                    <h:outputText value="age:" />
                    <h:inputText value="#{beanEtudiant.etudiant.age}" />
                </h:panelGrid>
                <h:commandButton value="sauvegarder" actionListener="#{beanEtudiant.ajouc()}" action="welcome?faces-redirect=true">
                    <f:actionListener binding="#{beanEtudiant.getEtd(beanEtudiant.etudiant.id)}" />
                </h:commandButton>
            </h:form>
    welcome.xhtml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
      <h:form>
                <h:outputText value="#{confirmBean2.etudiant.id}" />
                <h:outputText value="#{confirmBean2.etudiant.nom}" />
                <h:outputText value="#{confirmBean2.etudiant.prenom}" />
                <h:outputText value="#{confirmBean2.etudiant.age}" />
            </h:form>

  2. #2
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2012
    Messages : 93
    Par défaut
    aidez moi s'il vous plaît

  3. #3
    Membre expérimenté
    Homme Profil pro
    Développeur Java/JavaEE
    Inscrit en
    Août 2014
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Java/JavaEE

    Informations forums :
    Inscription : Août 2014
    Messages : 194
    Par défaut
    Bonjour,

    Ta méthode j'ajout te permet de récupérer l'étudiant inséré:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public Etudiant ajoutEtudiant(Etudiant etd) {
            Session session = HibernateUtil.getSessionFactory().openSession();
            Transaction tx = session.beginTransaction();
            session.save(etd);
            tx.commit();
            session.close();
    return etd;
        }

    Puis tu as plusieurs manière pour récupérer ton objet
    soit de rendre ton bean manager à session scope.
    Sois de passer l'id de ton objet dans l'url pour le récupérer dans l'autre bean:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public String redirectToFile(){
    //Ajouter l'etudiant et récupéré son idEtudiant
        	String navigateTo = null;
    		navigateTo = "showJudgment?faces-redirect=true&id=" + idEtudiant;
     
        	return navigateTo;
        }
    Et pour sa récupération :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    @PostConstruct
    	public void init(){
    		HttpServletRequest request = (HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();
    		int idEtud=Integer.parseInt(request.getParameter("idEtudiant"));
    }

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2012
    Messages : 93
    Par défaut
    merci Maine13 pour votre réponse
    j'ai récupérer l'id dans url, mais je pense que je fais une erreur au niveau de méthode init

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
        private IEtudiant dao;
        private Etudiant etudiant = new Etudiant();
        private Etudiant e = new Etudiant();
        private String a;
     
        @PostConstruct
        public void init() {
            dao = new ImplEtudiant();
            HttpServletRequest request = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
            a = request.getParameter("e.getId");
        }
     
        public String redirectToFile() {
            e = dao.ajoutEtudiant(etudiant);
            String navigateTo = "welcome?faces-redirect=true&id=" + e.getId();
            return navigateTo;
        }
    et dans la page welcome
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <h:form>
    <h:outputText value="#{beanEtudiant.a}" />
    </h:form>

  5. #5
    Membre expérimenté
    Homme Profil pro
    Développeur Java/JavaEE
    Inscrit en
    Août 2014
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Java/JavaEE

    Informations forums :
    Inscription : Août 2014
    Messages : 194
    Par défaut
    Oui bien sur car tu es entrain de récupérer une variable "e.getId" au lieu de "id" que tu as passé en paramètre dans ton url "welcome?faces-redirect=true&id=" + e.getId()

    essai plutôt:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    @PostConstruct
        public void init() {
            dao = new ImplEtudiant();
            HttpServletRequest request = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
            a = request.getParameter("id");
        }

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2012
    Messages : 93
    Par défaut
    Merci Maine13

    j'aissei d'affiche autre information de l'etudiant (nom...) mais ne s'affiche pas, sachant que je fais dans le bean e = dao.ajoutEtudiant(etudiant);

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <h:outputText value="#{beanEtudiant.a}" /> <!-- affiche id -->
    <h:outputText value="#{beanEtudiant.e.nom}" />
     <h:outputText value="#{beanEtudiant.e.prenom}" />
    <h:outputText value="#{beanEtudiant.e.age}" />

  7. #7
    Membre expérimenté
    Homme Profil pro
    Développeur Java/JavaEE
    Inscrit en
    Août 2014
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Java/JavaEE

    Informations forums :
    Inscription : Août 2014
    Messages : 194
    Par défaut
    Je suppose que ton bean est de view ou request scope car la durée de vie de ton bean est terminé donc ton objet étudiant va s'initialiser à new etudiant();

    Je pense que tu complique les choses en essayant de mettre tout cela dans un seul bean mais sinon il faut modifier le scope de ton bean à @SessionScope pour garder ton objet.

    Sinon je te conseille de gérer ta page welcome avec un autre bean la ou tu récupère l'id de ton etudiant et que tu le puisse le charger dans ta methode @postContruct

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

Discussions similaires

  1. Récupérer la valeur d'une liste dans une autre page
    Par olivier94 dans le forum Langage
    Réponses: 3
    Dernier message: 28/02/2007, 11h20
  2. Récupérer Variable dans une autre page et les sauvegarder
    Par MarianD dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 03/01/2007, 21h07
  3. [Formulaires] Traitement des données dans une autre page...
    Par sekiryou dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 04/03/2006, 09h08
  4. [PHP-JS] Traitement des données dans une autre page...
    Par sekiryou dans le forum Langage
    Réponses: 5
    Dernier message: 04/03/2006, 09h06
  5. Réponses: 2
    Dernier message: 17/06/2005, 13h38

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