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 :

Appeler méthode d'un ManagedBean depuis un autre


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de azassma
    Femme Profil pro
    Ph.D - Computer Vision
    Inscrit en
    Avril 2012
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ph.D - Computer Vision
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 159
    Par défaut Appeler méthode d'un ManagedBean depuis un autre
    Bonjour,
    Comme indiqué dans le titre je cherche à appeler une méthode(qui effectue insertion dans la base de données) qui est défini dans un managedbean depuis un autre managedbean.
    Si vous pouvez m'aider ?
    Merci

    Voila mon code :
    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
    @Named(value = "infracteursPMBean")
    @SessionScoped
    public class InfracteursPMBean implements Serializable {
    
        @ManagedProperty(value = "#{gavMB}")
        private GardeavuMBean gavMB;
    
    
        public void creerInfracteur() {
    
            if (this.gardeAVu == true) {
                gavMB.creerGAV();
                refGAV = gavMB.getRefGAV();
            }
        }
    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
    @Named(value = "gardeavuMBean")
    @SessionScoped
    public class GardeavuMBean implements Serializable {
    
        @EJB
        GardeavuSessionBean emGeGAV;
        private Gardeavu gav;
        private String refGAV;
        private AffaireMetier am;
    
        public GardeavuMBean() {
        }
    
        public Gardeavu getGav() {
            return gav;
        }
    
        public void setGav(Gardeavu gav) {
            this.gav = gav;
        }
    
        public String getRefGAV() {
            return refGAV;
        }
    
        public void setRefGAV(String refGAV) {
            this.refGAV = refGAV;
        }
    
        public void creerGAV() {
            am = new AffaireMetier();
    
            Apurementgav appur = new Apurementgav(apurement);
            Qualiteresponsablegav qual = new Qualiteresponsablegav(qualite);
            this.setRefGAV(am.reference());
    
            gav = new Gardeavu(refGAV);
    
            emGeGAV.persist(gav);
        }
    }

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    vu que ton bean s'appelle gardeavuMBean et pas gavMB, c'est

    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
    Named(value = "infracteursPMBean")
    @SessionScoped
    public class InfracteursPMBean implements Serializable {
    
        @ManagedProperty(value = "#{gardeavuMBean }")
        private GardeavuMBean gavMB;
    
    
        public void creerInfracteur() {
    
            if (this.gardeAVu == true) {
                gavMB.creerGAV();
                refGAV = gavMB.getRefGAV();
            }
        }
    Au fait, c'est "garde à vue" par "gardeavu", donc ta classe devrait être
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public class GardeAVueMBean
    jamais une bonne idée de faire une faute d'orthographe dans un nom de classe ou de ne pas respecter les conventions de nommages

  3. #3
    Membre confirmé Avatar de azassma
    Femme Profil pro
    Ph.D - Computer Vision
    Inscrit en
    Avril 2012
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ph.D - Computer Vision
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 159
    Par défaut
    Merci, je viens de corriger le nom mais ça ne marche pas toujours

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    pourriez vous définir "ne marche pas" ?

  5. #5
    Membre confirmé Avatar de azassma
    Femme Profil pro
    Ph.D - Computer Vision
    Inscrit en
    Avril 2012
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ph.D - Computer Vision
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 159
    Par défaut
    c'est à dire n’exécute pas la méthode creerInfracteur et par suite ne fait pas l’insertion dans la base de données

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    si la méthode creerInfracteur n'est pas appelée, c'est soit que tu ne l'a pas reliée correctement à ton action sur ton interface JSF, soit que le formulaire a échoué à la validation (utiliser <h:messages/> pour voir les erreurs de validation)

Discussions similaires

  1. Threads. Peut-on appeler la méthode d'un thread depuis un autre thread ?
    Par Pierre8r dans le forum Concurrence et multi-thread
    Réponses: 4
    Dernier message: 05/12/2008, 11h48
  2. Réponses: 6
    Dernier message: 29/04/2008, 09h34
  3. Réponses: 5
    Dernier message: 23/04/2007, 16h31
  4. Appel procédure d'un package depuis un autre package?
    Par Maglight dans le forum Oracle
    Réponses: 1
    Dernier message: 23/03/2007, 14h14

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