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

Servlets/JSP Java Discussion :

MethodFailedException JSP Struts2


Sujet :

Servlets/JSP Java

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2011
    Messages : 5
    Par défaut MethodFailedException JSP Struts2
    Bonjour à tous,

    Je suis sur un projet depuis quelques semaines, je dois développer une application web en JSP. J'utilise les frameworks Struts2 et Hibernate ainsi que Tomcat 6.

    J'ai créé un formulaire en JSP qui permet de créer une Aptitude (qui est également un bean). L'Aptitude possède un Responsable qui est en fait un User (également un bean). Du coup, en base, la table Aptitude possède une colonne Responsable de type INT qui représente un UserID.

    Jusque-là, pas de problèmes.

    C'est lorsque je veux insérer un User dans l'attribut responsable de mon Aptitude qu'il y'a cette exception :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ATTENTION: Error setting expression 'aptitude.responsable' with value '[Ljava.lang.String;@11a9310'
    ognl.MethodFailedException: Method "setResponsable" failed for object beans.Aptitude@ec42e0 [java.lang.NoSuchMethodException: beans.Aptitude.setResponsable([Ljava.lang.String;)]
    Pourtant, dans ma classe Aptitude, j'ai bien un getter, un setter, et également un 2ème setter prenant en paramètre un String !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public User getResponsable() {
    		return responsable;
    	}
    	public void setResponsable(String responsable) {
    		this.responsable = ManagerFactory.getInstance().createUserManager().getByLogin(responsable);
    	}
    	public void setResponsable(User responsable) {
    		this.responsable = responsable;
    	}
    D'avance merci pour votre aide,

    Cordialement,
    Kigou.

  2. #2
    Membre émérite Avatar de Lorantus
    Homme Profil pro
    Consultant développeur indépendant / Java/VB/C(++)/ObjectPal
    Inscrit en
    Août 2007
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant développeur indépendant / Java/VB/C(++)/ObjectPal

    Informations forums :
    Inscription : Août 2007
    Messages : 599
    Par défaut
    Si tu regardes bien la défintion d'un bean, le getter et le setter doivent avoir un type cohérant.
    Dans ton cas, c'est les getter et setter suivant qui sont pris en compte:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public User getResponsable() {
     return responsable;
    }
    public void setResponsable(String responsable) {
     this.responsable = ManagerFactory.getInstance().createUserManager().getByLogin(responsable);
    }
    public void setResponsable(User responsable) {
     this.responsable = responsable;
    }
    Si tu veux utiliser le setter avec un String, il faut que tu changes des noms, par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public String getResponsable() {
     return responsable.getLogin(); // Par exemple
    }
    public void setResponsable(String responsable) {
     this.responsable = ManagerFactory.getInstance().createUserManager().getByLogin(responsable);
    }
    public User getResponsableUser() {
     return responsable;
    }
    public void setResponsableUser(User responsable) {
     this.responsable = responsable;
    }

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2011
    Messages : 5
    Par défaut
    Bonjour et merci de ton aide Lorantus,

    J'ai finalement réglé le problème d'une autre manière.

    Ayant 2 setters, j'ai supprimé celui qui n'étais jamais utilisé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public void setResponsable(User responsable) {
    		this.responsable = responsable;
    	}
    Et depuis, tout roule.


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

Discussions similaires

  1. [Plugin] jtip.js avec struts2 et page JSP
    Par luchet dans le forum jQuery
    Réponses: 6
    Dernier message: 01/07/2015, 14h27
  2. Réponses: 2
    Dernier message: 03/06/2014, 17h23
  3. Réponses: 0
    Dernier message: 18/07/2012, 15h31
  4. struts2 et jsp
    Par Carloslib dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 21/06/2011, 12h25
  5. pb struts2 ognl.MethodFailedException:
    Par philou.filou1 dans le forum Struts 2
    Réponses: 0
    Dernier message: 27/02/2011, 12h09

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