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

Développement Web en Java Discussion :

Partager une valeur dans un managed bean entre les clients


Sujet :

Développement Web en Java

  1. #1
    Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

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

    Informations forums :
    Inscription : Mai 2016
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Partager une valeur dans un managed bean entre les clients
    Bonjour,

    Je viens de faire une application web (JSF 2.2/EJB 3.2) et parmi les taches :

    - Un client 1 choisi un participant.
    - Tout les autres clients voient ce participant choisi et ils réalisent un traitement (exemple: un commentaire) .

    Alors j'ai construis un managedBean A @Applicationscoped pour la gestion des affectation et j'ai mis le participant sélectionné dans une variable selectParticipant ;
    et pour le traitement des commentaires j'ai construis un managedBean B @sessionscoped. et je veux faire un appel de selectedParticipant.

    1----J'ai essayais de faire ca avec un appel de managed bean
    dans le bean B:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      @ManagedProperty(value = "#{A}")
    	 private A a;
    Participant p= a.getselectedParticipant;
    alors un message d'erreur s'afiiche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (La propriété «A» du bean géré «B» n’existe pas....)

    1- Comment je peux partager la valeur sélectionné entre tout les clients ?
    2- Je cherche un mécanisme pour rafraîchir la page des clients lorsque le client 1 change le participant choisi?

    et merci d'avance;

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2016
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2016
    Messages : 37
    Points : 39
    Points
    39
    Par défaut
    bonjour,

    je suis mauvais avec ces managedBean, mais si je me trouvais dans ton cas, j'essayerai de mettre l'attribut en static, juste pour voir

  3. #3
    Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

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

    Informations forums :
    Inscription : Mai 2016
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Merci IDtalc;

    Je suis bloqué est j'ai essayé ta solution et elle n'a pas marché.

  4. #4
    Membre chevronné Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Points : 2 120
    Points
    2 120
    Par défaut
    salut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    @ManagedProperty(value = "#{a}")
    	 private A a;
    Participant p= a.getselectedParticipant;
    eric

  5. #5
    Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

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

    Informations forums :
    Inscription : Mai 2016
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par jeffray03 Voir le message
    salut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    @ManagedProperty(value = "#{a}")
    	 private A a;
    Participant p= a.getselectedParticipant;
    eric
    Oui, c'est vrai et merci pour votre attention, c'est un exemple que j'ai mis, mais dans mon code j'ai fais attention à la casse et j'ai fais copie/coller.

    le problème est:
    - le mBean A (applicationscoped) est invoqué par le client 1.
    - le mBean B (sessionscoped) est invoqué par le client 2.

    Comment le client 2 accède à la même instance de A créer par le client 1 et récupère ces valeurs ?

    NB: Le client 2 peut lire les valeurs d'instance A crée par le client 1 (le client 2 peut voir le participant sélectionné par un simple output: #{a.selectedParticipant.getNom} ), mais je veux que le client 2 le récupère pour lui affecter un objet .

  6. #6
    Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

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

    Informations forums :
    Inscription : Mai 2016
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Bon, j'ai rebâti mon managedBean pas à pas, et ça bien marché, alors peut être j'ai une faute :

    - 1 - Soit j'ai pas mis les ascenseurs de mB appelé.
    - 2 - Soit il y a une faute des noms de managed bean quelque part.

    Mais en générale le principe à mon avis est juste:
    Si je veux partager une ressource entre tout les clients alors je vais la mettre dans managed Bean @ApplicationScoped
    Puis je lui fais un appel par @ManagedProperty dans un autre mB.

    Exemple:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    @ManagedBean (name="leNomA") // soit je defini le nom ou il sera par defaut "a"
    @ApplicationScoped
     
    public class A {
    // le code de mon mB
    }

    les autres client partagent ce mB a

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    @SessionScoped
     
    public class B {
     
    @ManagedProperty(value = "#{leNomA}") // Si nous n'avons pas défini le nom alors nous devons mettre value = "#{a}" le nom par défaut 
    private A a2;
     
    // l'ascenceur et le mutateur de a2
    // le code de mon mB
    }

    Remarque:

    Ne faite pas comme moi, j'ai construis mes pages jsf par les noms par défaut des managedBean, puis en cours de travail j'ai redéfini les noms des mB sans les changés dans les pages jsf. Si ça pas marché et il n'y a aucune erreur alors vous avez fait comme moi .

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 01/10/2009, 20h08
  2. Réponses: 7
    Dernier message: 26/08/2009, 13h44
  3. Réponses: 3
    Dernier message: 15/09/2006, 14h01
  4. Réponses: 2
    Dernier message: 24/11/2005, 22h30
  5. [MFC][Registre] Entrée une valeur dans REG_BINARY
    Par lastcheper dans le forum MFC
    Réponses: 3
    Dernier message: 04/10/2005, 11h59

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