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 :

[Débutant] Comment manipuler un managed bean


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur

    Avatar de khayyam90
    Homme Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2004
    Messages
    10 371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2004
    Messages : 10 371
    Par défaut [Débutant] Comment manipuler un managed bean
    Bien le bonjour,

    J'ai un managed bean déclaré dans mon fichier faces-config.xml.
    Dans un fichier jsp, j'aimerais pouvoir accéder aux différentes propriétés de mon bean.
    Je ne cherche pas à obtenir une propriété du bean dans un tag pour faire quelque chose comme prop1 = #{mon_bean.ma_prop} mais plutot à avoir la main directement sur ma propriété, quelque chose comme
    type t = mon_bean.ma_prop de manière à manipuler pleinement la propriété du bean.
    Ce n'est sûrement qu'un problème de syntaxe, mais je ne vois pas comment m'en sortir.

    Des idées ?

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2006
    Messages : 22
    Par défaut
    Je ne sais pas si j'ai bien saisi, mais je ne pense pas que cela soit possible.

    Je crois me rappeler que les propriétés des beans ne sont accessibles que via les getters et setters du bean d'une part et des propriétés d'autre part.

    Je ne vois pas pourquoi tu pourrais avoir besoin d'un accès direct (méthode standard : passer pas les getters & setters)

    Explique ?

  3. #3
    Rédacteur

    Avatar de khayyam90
    Homme Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2004
    Messages
    10 371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2004
    Messages : 10 371
    Par défaut
    En effet, je me suis mal exprimé. Je ne cherche pas à éviter l'appel aux méthodes get/set, je cherche juste à récupérer dans un objet à moi certaines des propriétés du managed bean.
    Donc un type t = mon_bean.get_ma_prop() m'irait très bien.

    La souci est que l'objet mon_bean est défini dans le faces-config.xml et donc pas directement appelable dans une page jsp (enfin d'après ce que j'en ai compris)

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2006
    Messages : 22
    Par défaut
    La classe de ton bean est définie directement dans le faces-config ?

    je pense que tu peux accéder à n'importe quel bean déclaré dans le face-config. Lui, n'est là que pour instancier les bean. Je ne pensa pas qu'il construise les classes. Je pense donc que tu peux avoir accès à toutes les propriétées de ton bean du moment que sa classe est "équipée" des getters et setters adéquats.

    par exemple si j'ai

    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
    public class monbean{
       User user;
     
       public User getUser(){
          return user;
       }
       public void setUser(User user){
          this.user=user;
       }
     
    }
     
    public class User{
       String login;
       String pass;
     
       public String getlogin(){
          return login;
       }
       ...
       ...
    }
    Tu peux dans ta page jsp avoir accè au login de manière "directe" comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <h:outputText value="#{monBean.user.login}" />
    J'ai pas plus direct en stock...

    Maintenant, je ne comprends pas très bien ce que tu entends pas "défini"... ça veut dire que tu DECLARE ta classe dans le faces-config ou que tu l'INSTANCIE...

    ps : quand un bean est déclaré dans le faces-config, tu as accès aux propriétés même celles qui ne sont pas déclarées explicitement dans le faces-config

  5. #5
    Rédacteur

    Avatar de khayyam90
    Homme Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2004
    Messages
    10 371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2004
    Messages : 10 371
    Par défaut
    La classe du bean n'est pas définie directement dans le faces-config.xml, mais dans un package. Elle possède tous les get/set qui vont bien. Et le managed bean est instancié dans le faces-config.xml

    En fait, dans le jsp, comment avoir quelque chose comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <%
    String s = monBean.get_user().get_login();
    // ...
    %>
    ?
    pour accéder aux propriétés du bean ailleurs que dans un tag jsp ?

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2006
    Messages : 22
    Par défaut
    tu veux pouvoir y accéder directement depuis du code jsp ou depuis un tag jsf ?

    dans le deuxième cas, c'est tout simple (cf : mon mess précédent)

    dans le premier cas, il faut que tu récupère le contexte jsf et que tu aille prendre la propriété dans le managed component tree. Maintenant comment faire ça..., je sais pas trop, mais je crois que c'est possible...

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 11/09/2010, 18h43
  2. Réponses: 4
    Dernier message: 30/09/2009, 19h54
  3. Réponses: 4
    Dernier message: 08/07/2008, 22h39
  4. Réponses: 4
    Dernier message: 09/05/2007, 10h21
  5. [débutant]comment manipuler des fichiers bitmap
    Par caty_info dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 04/04/2007, 10h20

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