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 :

Recherche d'un composant à partir de l'UIViewRoot


Sujet :

JSF Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 23
    Par défaut Recherche d'un composant à partir de l'UIViewRoot
    Bonjour,

    Je cherche à récupérer un composant à partir de son ID.

    Pour cela j'utilise dans un ActionListener:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    UIComponent myComponent = FacesContext.getCurrentInstance().getViewRoot().findComponent("myComponent");
    dans mon facelet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <f:form>
    ...
    <h:inputText id="myComponent" value="#{monBean.valeur}" required="true"/>
    ...
    <h:commandButton actionListener="#{monBean.monActionListenerMethod}"/>
    ...
    </f:form>
    Cependant, je récupère une valeur Null

    Comment retrouver mon composant UI ? existe-t-il une possibilité de rechercher un composant avec un jocker ou faut-il que je parcours entierment l'arbre pour retouver le composant que je cherche ?

    cdt

  2. #2
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    Il faut préciser le chemin du composant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    findComponent("formId:componentId")

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 23
    Par défaut
    C'est clairement limité comme méthode !

    J'utilise de la composition avec les facelets et je ne maitrise pas forcement la profondeur de l'arbre de composant !

    Pour l'instant, j'ai cablé un nom de base en dur, mais c'est pas vraiment top !

    Il manque une méthode findComponentByIdPattern(String) !

    ++

  4. #4
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    tu n'est pas obligé de connaitre l'arbre de profondeur, il faut donner la racine de la recherche, comme si tu recherche un fichier dans un dossier..

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 23
    Par défaut
    Effectivement, je vois bien le truc.

    Cela reste assez indirect comme méthode !

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

Discussions similaires

  1. Comment avoir le composant à partir de son handle?
    Par korntex5 dans le forum Composants VCL
    Réponses: 2
    Dernier message: 15/12/2005, 16h12
  2. Recherche d'une composant grille
    Par bomp dans le forum Composants VCL
    Réponses: 2
    Dernier message: 14/11/2005, 17h44
  3. Recherche d'un état à partir d'un formulaire
    Par Marmouz dans le forum Access
    Réponses: 2
    Dernier message: 14/09/2005, 23h14
  4. De quel composant partir pour réecrire des TEdit...
    Par Neilos dans le forum C++Builder
    Réponses: 3
    Dernier message: 11/01/2005, 17h53
  5. Recherche d'un composant cadre
    Par Gwipi dans le forum Composants
    Réponses: 2
    Dernier message: 28/04/2004, 18h51

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