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 :

[facelet][composant] Comment passer une reference vers une methode?


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur
    Avatar de Hikage
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 177
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 177
    Par défaut [facelet][composant] Comment passer une reference vers une methode?
    J'ai un composant qui génére une serie de lien.

    J'aimerai passé à ce composant, une référence vers une méthode d'un bean ( via MethodBinding ).

    Le problème, c'est que j'ai beau avoir déclarer dans le composant une méthode :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public void setRedirectAction(MethodBinding binding){
      this.redirectAction = binding;
    }
    Cette méthode n'est jamais appellée, et une ValueBindind est ajoutée à la place.

    Or, dans les CommandLink créer par mon composant, je dois fournir une MethodBinding...

    comment puis-je m'en sortir ?
    Hikage
    SCJP / SCWCD & SCWSJD Certified / Spring Framework Certified
    [Personal Web] [CV]

    F.A.Q Spring Framework - Participez !

  2. #2
    Rédacteur
    Avatar de Hikage
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 177
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 177
    Par défaut
    J'ai trouvé la solution

    Pour les intéressés, il faut créer un tag handler ( qui étend de com.sun.facelets.tag.jsf.ComponentHandler. C'est dans celui-ci que l'on spécifie le fait qu'une propriété est de type MethodBinding :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    @Override
    	protected MetaRuleset createMetaRuleset(Class type) {
    		// TODO Auto-generated method stub
    		MetaRuleset metarule = super.createMetaRuleset(type);
    
    		metarule.addRule(new MethodRule("redirectAction", String.class, new Class[] {}));
    
    		return metarule;
    	}
    redirectionAction est donc le nom de la propriété
    String.class spécifie le type de retour de la méthode cible
    et new Class[]{} spécifie le type des paramètres de la méthode cible, dans mon cas, aucun paramètre.

    Donc ici, la méthode setRedirectAction prends accepte des méthodes de ce type :

    Hikage
    SCJP / SCWCD & SCWSJD Certified / Spring Framework Certified
    [Personal Web] [CV]

    F.A.Q Spring Framework - Participez !

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

Discussions similaires

  1. [VB.Net] Comment copier une DataRow d'une table vers une autre ?
    Par YLF dans le forum Accès aux données
    Réponses: 7
    Dernier message: 05/09/2012, 23h23
  2. Comment mettre un lien dans une page vers une autre partie de la même page?
    Par Longway dans le forum Dépannage et Assistance
    Réponses: 4
    Dernier message: 12/10/2006, 18h58
  3. Réponses: 4
    Dernier message: 11/09/2006, 17h58
  4. Réponses: 5
    Dernier message: 04/07/2006, 11h29
  5. Réponses: 16
    Dernier message: 20/03/2006, 23h21

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