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 :

[Composant] Modifier le parent avant qu'il soit "rendu"


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut [Composant] Modifier le parent avant qu'il soit "rendu"
    J'ai créé un composant validation qui se charge de lancer une fonction Javascript quand l'utilisateur clique sur un bouton.
    En HTML, je fais simplement l'ajout sur l'attribut onclick du bouton le code Javascript checkValidation().

    En JSF, ça s'écrit comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ...
        <h:commandButton ...>
            <moi:validation .../>
        </h:commandButton>
    ...
    Dans le code du composant, je peux sans problème récupérer le parent de mon composant, et lui ajouter ce que je veux dans le onclick.
    Le souci, c'est qu'il me faut modifier l'attribut onclick du commandButton avant que celui-ci ne soit "rendu" (que sa méthode encodeBegin()) ne soit appelée.
    En effet, si je fais ma modification dans l'encodeBegin() de mon composant, modifier l'attribut onclick du bouton ne sert à rien, vu que encodeBegin() du bouton a déjà été appelé (donc le bouton est déjà "rendu").

    La seule façon que j'ai trouvé pour l'instant pour résoudre mon problème est assez porc : Je surcharge la méthode la méthode setParent de mon composant comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
        ...
        @Override
        public void setParent(UIComponent parent) {
            super.setParent(parent);
            if ((parent != null) && (parent instanceof UICommand)) {
                modifyOnclickAttribute(parent);
            }
        }
        ...
    Franchement, je n'aime pas cette solution, bien qu'elle marche.
    Comment auriez-vous procéder ?
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  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
    Franchement, exactement comme toi. Je ne vois pas ce que tu reproche à cette méthode....

    Sinon, tu télécharge les sources de richefaces, çà contiens des composant qui ajoutent du comportement ajax sur des composant "classique", avec exactement le même layout JSF que toi. Y a plus qu'à regarder où il le font.

  3. #3
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    Franchement, exactement comme toi. Je ne vois pas ce que tu reproche à cette méthode....
    Je n'ai rien contre cette méthode, juste que je trouve que ce que je veux faire ne devrais pas vraiment être fait à cet endroit là, mais bon...

    Citation Envoyé par tchize_ Voir le message
    Sinon, tu télécharge les sources de richefaces, çà contiens des composant qui ajoutent du comportement ajax sur des composant "classique", avec exactement le même layout JSF que toi. Y a plus qu'à regarder où il le font.
    En créant mon composant je pensais justement au composant <a4j:support/>. Maintenant les sources sont assez complexes, et franchement je n'avais pas trop envie de passer trop de temps à la recherche de ce bout de code
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

Discussions similaires

  1. Réponses: 9
    Dernier message: 11/02/2007, 16h08
  2. Réponses: 14
    Dernier message: 15/09/2006, 18h34
  3. [JDIC] modifier la page avant affichage
    Par iuz dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 16/07/2006, 15h36
  4. Réponses: 3
    Dernier message: 30/09/2005, 11h03
  5. Modifier le parent d'un CControlBar
    Par mickaelguilbert dans le forum MFC
    Réponses: 3
    Dernier message: 03/05/2005, 18h25

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