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 :

Action : remplacer la fonction par une chaîne


Sujet :

JSF Java

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2003
    Messages
    245
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 245
    Points : 106
    Points
    106
    Par défaut Action : remplacer la fonction par une chaîne
    Bonjour,

    Savez-vous comment il serait possible de remplacer la fonction par une chaîne de caractère dans un commandLink ?

    Voici un exemple simple illustrant ce que j'ai besoin de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <commandLink action="#{myPackage.MyClass.myAction}"/>
    <commandLink action="#{myClassInstance.actionName}"/>
     
    class myPackage.MyClass {
     
        public String myAction() {
            return null;
        }
     
        public String getActionName() {
            return "myPackage.MyClass.myAction";
        }
    }
    En développant de cette façon j'ai une erreur du style :
    org.apache.jasper.el.JspMethodNotFoundException: /myPage.jsp(10,0) '#{myClassInstance.actionName}' Method not found: myPackage.MyClass@5f7d3f.actionName()
    Merci.

  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
    Points : 5 059
    Points
    5 059
    Par défaut
    le paramètre action prend soit une chaine :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <h:commandLink action="go_to"/>
    Soit le binding d'une méthode et pas un attribut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <h:commandLink action="#{bean.action}"/>


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Public String action(){
     
    return "go_to";
     
    }

  3. #3
    Membre régulier
    Inscrit en
    Novembre 2003
    Messages
    245
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 245
    Points : 106
    Points
    106
    Par défaut
    Merci pour les précisions. Je vais donc essayer une autre méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public String redirect() {
    	Map<String, String> parameters = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
    	Object controller = getBeanInFacesContext(parameters.get(PARAM_CONTROLLER_BEAN));
    	Class<?> clazz = controller.getClass();
    	Method action = clazz.getMethod(parameters.get(PARAM_CONTROLLER_METHOD));
    	return (String) action.invoke(controller, new Object[0]);
    }
    A suivre...

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

Discussions similaires

  1. On remplace le printf par une autre fonction
    Par chirazch dans le forum C++
    Réponses: 6
    Dernier message: 31/05/2013, 18h59
  2. [regexp] Remplacer une chaîne par une chaîne aléatoire
    Par endreillie dans le forum Langage
    Réponses: 9
    Dernier message: 28/10/2010, 12h15
  3. Réponses: 13
    Dernier message: 30/06/2010, 15h23
  4. Réponses: 2
    Dernier message: 31/03/2008, 15h18
  5. remplacer du code par une fonction
    Par bullrot dans le forum C++Builder
    Réponses: 6
    Dernier message: 21/11/2007, 12h08

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