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

Struts 1 Java Discussion :

problème tags struts


Sujet :

Struts 1 Java

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2005
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 31
    Points : 18
    Points
    18
    Par défaut problème tags struts
    bonjour ts le monde,
    j'ai un problème qui se déclenche au niveau du tag struts <html:select ...> de ma jsp dont le code est le suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <tr align="center"> 
    <td><html:select property="clientCode" size="5" multiple="">
    <html:options collection="clientCode"/>
     
    </html:select>
    ************l'exception************************
    javax.servlet.ServletException: No getter method available for property clientCode for bean under name org.apache.struts.taglib.html.BEAN

    *************la classe action********************
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Vector clients=new Vector();
      Vector clientCode=new Vector();
      Vector clientHostId=new Vector();
      Vector familyName=new Vector();
      Vector firstName=new Vector();
      clients=Clients.getClients();
      for(Iterator it=clients.iterator();it.hasNext();){
          Client client=(Client)it.next();
          clientCode.add(client.getClientCode());
          clientHostId.add(client.getClientHostId());
          familyName.add(client.getFamilyName());
          firstName.add(client.getFirstName());
      }
      request.setAttribute("clientCode",clientCode);
      request.setAttribute("clientHostId",clientHostId);
      request.setAttribute("familyName",familyName);
      request.setAttribute("firstName",firstName);
      return mapping.findForward("success");
    Rq: j'ai met ici que des portions du code. et à noter aussi que clientCode n'est pas un un formBean, c'est un vector où j'ai assemblé les attributs clientCode de client.

    Merci de m'éclairir le chemin pr résoudre ce pb. je ss vraiment bloqué.

  2. #2
    Membre régulier Avatar de stela86
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 197
    Points : 111
    Points
    111
    Par défaut
    Peut tu montrer ton ActionForm stp

  3. #3
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Evite de donner le même nom au vecteur et à la propriété.
    Par exemple, appelle ton vecteur clientCodeList.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <html:select property="clientCode" size="5" multiple="">
        <html:options collection="clientCodeList"/>
    </html:select>
    Et dans ton ActionForm, il te faut getter et setter sur clientCodeList et getter et setter sur clientCode.
    Modératrice Java - Struts, Servlets/JSP, ...

  4. #4
    Membre à l'essai
    Inscrit en
    Août 2005
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 31
    Points : 18
    Points
    18
    Par défaut
    pour la classe Client (c'est une ActionForm généré par Hibernate) j'ai bien le getter et le setter de clientCode.

    ds ma classe Action clientCode est un Vector où j'ai met les attributs clientCode d'une instance client de la classe Client (j'ai la renommé clientCodeList mais le pb reste le meme), comme s'apparait ds le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     for(Iterator it=clients.iterator();it.hasNext();){
          Client client=(Client)it.next();
          clientCode.add(client.getClientCode());
          clientHostId.add(client.getClientHostId());
          familyName.add(client.getFamilyName());
          firstName.add(client.getFirstName());
      }
    Après ce Vector est désigné comme attribut de ma requete:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      request.setAttribute("clientCode",clientCode);
    ce Vector est ensuite récupéré dans le tag <html:select ...>

    et je comprend pas pourquoi clientCode (disons clientCodeList) doit avoir un getter, alors qu'il est simplement un vector et pas un attribut d'une classe (ActionForm)

    je souhaite qu'il sera maintenant un peu clair

  5. #5
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Effectivement, dans le cas où tu fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.setAttribute("clientCodeList",clientCodeList);
    il n'est pas utile de coder getter et setter sur clientCodeList.

    Par contre, comme tu as codé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:select property="clientCode">
    il faut bien coder getter et setter sur la propriété clientCode dans l'ActionForm.

    Tu me dis que ton ActionForm est la classe Client et qu'elle possède bien getter et setter sur clientCode.

    Par contre, dans le mapping de ton Action, as-tu mis la référence au form-bean via l'attribut name ?

    Sinon, en regardant de plus près ton code, je m'aperçois que tu as une méthode qui te renvoie un Vector de beans Clients.

    Donc tu pourrais simplifier ton Action comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Vector clients=new Vector();
    clients=Clients.getClients();
    request.setAttribute("clients",clients);
    return mapping.findForward("success");
    Et dans ta jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <html:select property="clientCode" size="5" multiple="">
        <html:options collection="clients" property="clientCode" labelProperty="clientCode"/>
    </html:select>
    Modératrice Java - Struts, Servlets/JSP, ...

Discussions similaires

  1. Problème tag Struts
    Par snakyball dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 04/10/2012, 13h07
  2. Problème tags Struts 2
    Par safari25 dans le forum Struts 2
    Réponses: 0
    Dernier message: 28/02/2011, 10h29
  3. Problème de conversion des tag struts
    Par reverse_engineer dans le forum Struts 1
    Réponses: 2
    Dernier message: 22/07/2008, 12h57
  4. [Struts-Layout] problème tag img
    Par mima_mine dans le forum Struts 1
    Réponses: 25
    Dernier message: 20/07/2008, 16h38
  5. [Struts-Layout] problème tag dynMenu
    Par mima_mine dans le forum Struts 1
    Réponses: 12
    Dernier message: 20/07/2008, 16h25

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