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 :

Getter not found


Sujet :

Struts 1 Java

  1. #1
    Membre éclairé
    Inscrit en
    Mai 2006
    Messages
    525
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 525
    Par défaut Getter not found


    Je developpe une application en utilisant struts et j'ai l'erreur suivante. En fait Tomact me dit qu'il ne trouve pas de getter dans mon java bean alors que j'en ai bien un. Quelqu'un sait d'ou peut provenir cette erreur.

    Voici l'erreur :
    javax.servlet.jsp.JspException: No getter method for property listeDocumentsTrouvés of bean LISTDOCUMENTS
    org.apache.struts.taglib.TagUtils.lookup(TagUtils.java:973)
    org.apache.struts.taglib.logic.IterateTag.doStartTag(IterateTag.java:232)
    org.apache.jsp.resultatsRecherche_jsp._jspService(resultatsRecherche_jsp.java:102)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:362)
    org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1063)
    org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:263)
    org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:386)
    org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:318)
    org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:229)
    org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
    org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:362)



    Merci

  2. #2
    Expert confirmé

    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
    Par défaut
    Peux-tu nous montrer le code de la jsp qui fait référence à la propriété listeDocumentsTrouves ?

    PS : en fait, je viens de voir que tu as mis un accent à Trouvés. Je ne suis pas certaine que ça lui plaise. peux-tu essayer sans accent ?

  3. #3
    Membre éclairé
    Inscrit en
    Mai 2006
    Messages
    525
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 525
    Par défaut
    Oui, voici la partie du code de ma JSP qui fait référence à listedocumentsTrouvés :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <select name="documents">
            <logic:iterate id="MoteurRecherche" name="LISTDOCUMENTS" property="listeDocumentsTrouvés" >                                                
                 <option><bean:write name="MoteurRecherche" property="champRecherche"/></option>
            </logic:iterate>
          </select>

  4. #4
    Membre éclairé
    Inscrit en
    Mai 2006
    Messages
    525
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 525
    Par défaut
    Citation Envoyé par c_nvy
    Peux-tu nous montrer le code de la jsp qui fait référence à la propriété listeDocumentsTrouves ?

    PS : en fait, je viens de voir que tu as mis un accent à Trouvés. Je ne suis pas certaine que ça lui plaise. peux-tu essayer sans accent ?
    Oui j'ai enlevé l'accent mais j'ai toujours la même erreur.

  5. #5
    Expert confirmé

    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
    Par défaut
    Mais qu'as-tu mis dans le scope : listeDocumentsTrouvés ou LISTDOCUMENTS ?
    Et comment l'as-tu mis dans le scope ?
    Un bout de code de l'Action pourrait nous aider.

  6. #6
    Membre éclairé
    Inscrit en
    Mai 2006
    Messages
    525
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 525
    Par défaut
    Je poste tout mon code , ça vous aidera peut être pour m'aider à résoudre mon problème.
    En fait, je veux faire un mini moteur de recherche. Ce moteur est représenté dans ma page acceuil par le formulaire suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     <html:form action="MoteurRechercheAction.do">
            <!--Textefield dans lequel on entre le mot clé-->
            <html:text property ="champRecherche"> </html:text>   </span></span></span></small>
            <!--Bouton de soumission du moteur de recherche -->
            &nbsp;<html:submit value="OK"></html:submit>    
        </html:form>
    Je veux que lorsque l'utilsateur rentre un mot clé, ici une chaine d'un nom de dossier alors je recherche les dossiers (J'ai en fait une table Dossier dans ma base de données) qui commencent par cette chaine et je les affiche dans un menu déroulant dans une autre page afficheresultat.jsp.

    Pour cela voici la classe de mon bean de formulaire :
    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
    public class MoteurRechercheForm extends ActionForm{
     
     
        private String champRecherche = null;
     
        /** Creates a new instance of MoteurRechercheForm */
        public MoteurRechercheForm() {
        }
     
        public String getChampRecherche() {
            return champRecherche;
        }
     
        public void setChampRecherche(String champRecherche) {
            this.champRecherche = champRecherche;
        }
     
    }
    mon java bean :
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    public class MoteurRecherche implements Serializable{
     
       // public Vector listeNomDossier = new Vector();
        private Vector listeDocumentsTrouves = new Vector();
     
        private String champRecherche;
        /** Creates a new instance of MoteurRecherche */
        public MoteurRecherche() {
        }
     
        public MoteurRecherche(String champRecherche){
            this.champRecherche=champRecherche;
        }
     
        public String getChampRecherche() {
            return champRecherche;
        }
     
        public void setChampRecherche(String champRecherche) {
            this.champRecherche = champRecherche;
        }
     
        /**
         *  on compare un nom de dossier avec ce qu'a entré l'utilisateur
         */      
        public String comparaisonDossier(String dossier, String champ){
         try{  
            /*  Ici comment tu lui dit qu'il faut prendre la première partie de la clé */
            StringTokenizer cle1 = new StringTokenizer(dossier,"_");
            Vector tokens1 = new Vector();
            while (cle1.hasMoreTokens()) {
                tokens1.add(cle1.nextToken());
            }
            System.out.println("///CLE1/////" + tokens1.elementAt(0));
            // ici on fait le test par rapport au premier token
            System.out.println ("Champ moteur de recherche " + this.getChampRecherche());
            if(champ.equals(tokens1.elementAt(0))){
                System.out.println("============EGALES========");
                return tokens1.elementAt(0).toString();
            }
             else{
               System.out.println("============NON EGALES========");
               return null;
            }
         }catch(Exception e){
             System.out.println("ERREUR MOteurRecherche.java" + e.getMessage());
             return null;
         }
        }
     
        /**
         * Comparaison des procedures
         */
     
        public String comparaisonProcedure(String procedure){
          try{
            StringTokenizer cle1 = new StringTokenizer(procedure,"_");
            Vector tokens1 = new Vector();
            while (cle1.hasMoreTokens()) {
                tokens1.add(cle1.nextToken());
            }
            System.out.println("///CLE1PROCEDURE/////" + tokens1.elementAt(0));
            // ici on fait le test par rapport au premier token
            System.out.println ("Champ moteur de recherche " + this.getChampRecherche());
            if(champRecherche.equals(tokens1.elementAt(0))){
               System.out.println("============EGALES========");
               return tokens1.elementAt(0).toString();           
            }
             else{
                System.out.println("============NON EGALES========");
               return null;
            }
         }catch(Exception e){
             System.out.println("ERREUR MoteurRecherche.java" + e.getMessage());
             return null;
         }
        }
     
        public Vector recuperationDossiers(Connection cnx)throws SQLException{
           		Statement st = cnx.createStatement();
    		ResultSet rs = st.executeQuery("SELECT nom FROM dossier" );   
                    MoteurRechercheForm mrForm = new MoteurRechercheForm();
                   // MoteurRecherche mr = new MoteurRecherche(mrForm.getChampRecherche());
                   // System.out.println("===============" + mrForm.getChampRecherche()+"==============");
                     // On itère sur le curseur résultat
    		System.out.println("Recuperation du resultat pour moteur de recherche");
     
    		while( rs.next() ){
                        // on recupère la clé du dossier
                        System.out.println("valeur de rs ");
                        String cleRechercheDossier = comparaisonDossier((rs.getString("nom")), champRecherche);
                        if(cleRechercheDossier != null){
                            System.out.println("rajout dans la liste des documents");
                            getListeDocumentsTrouves().add(rs.getString("nom"));
                        }                    
                   }
     
                    /** Affichage du contenu du vecteur listeDocumentsTrouves */
                    for(int i =0; i < getListeDocumentsTrouves().size();i++){
                        System.out.println("ELEMENT NUMERO " + i +getListeDocumentsTrouves().elementAt(i) );
                    }
                    // ResultSet rs2 = st.executeQuery("SELECT nom FROM procedure_t");
                    // System.out.println("Select pour peocedure");
                  //  System.out.println("WHILE de comparaison procedure");
                  //  while( rs2.next()){
                  //      String cleRechercheProcedure = mr.comparaisonProcedure(rs2.getString("nom"));
                  //      if(cleRechercheProcedure != null){
                    //        listeDocumentsTrouves.add(cleRechercheProcedure);
                   //    }
                   // }     
          		rs.close();
                   // rs2.close();
    		st.close();   
                    return getListeDocumentsTrouves();
        }
     
        public Vector getListeDocumentsTrouves() {
            return listeDocumentsTrouves;
        }
     
        public void setListeDocumentsTrouves(Vector listeDocumentsTrouves) {
            this.listeDocumentsTrouves = listeDocumentsTrouves;
        }
    }
    la classe representant mon 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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    public class MoteurRechercheAction extends Action{
     
        /** Creates a new instance of MoteurRechercheAction */
        public MoteurRechercheAction() {
        }
     
         public ActionForward execute(ActionMapping mapping,ActionForm form, 
                                     HttpServletRequest request, HttpServletResponse response)throws Exception{
     
     
             //dans l'action on doit appeler la méthode de comparaison.
                MoteurRechercheForm mrForm=(MoteurRechercheForm) form;        
                DataSource ds=getDataSource(request, "enidb");
                Connection cnx=ds.getConnection(); 
                //System.out.println("Instanciation du moteur de recherche dans ACTION");
                MoteurRecherche mr= new MoteurRecherche(mrForm.getChampRecherche());
                ListmoteurRecherche listeMR= new ListmoteurRecherche();
                mr.recuperationDossiers(cnx);
                Vector listeDocumentsTrouves = mr.getListeDocumentsTrouves();
                System.out.println("****************************************");
                System.out.println(listeDocumentsTrouves);
                System.out.println("****************************************");
               //listeMR.recupListDocumentsFromDataBase(cnx);
                cnx.close();
                request.setAttribute("LISTDOCUMENTS", listeDocumentsTrouves);
                return mapping.findForward("success");             
            }
    }
    le code jsp de la page sur laquelle je veux afficher les dossiers que je recupere afficheresultat.jsp:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <select name="documents">
            <logic:iterate id="MoteurRecherche" name="LISTDOCUMENTS" property="listeDocumentsTrouves" >                                                
                 <option><bean:write name="MoteurRecherche" property="champRecherche"/></option>
            </logic:iterate>
          </select>
    le tout bien sur mappé dans struts-config.
    grace à mes traces je sais que le recherche s'effectue avec succès. Le problème c'est lorsque je veux afficher le résultat sur la page afficheresultat.jsp

  7. #7
    Expert confirmé

    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
    Par défaut
    Désolée mais je m'y perds un peu dans ton code.

    Mais, si j'ai bien compris, le Vector que tu as mis dans le scope request sous le nom LISTDOCUMENTS (que je renommerais listDocuments pour respecter les conventions de nommage java ), est un Vector de String.

    Si c'est bien le cas, tu peux donc tout simplement utiliser le tag html:select comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <html:select property="documents">
    	<html:options name="listDocuments"/>
    </html:select>

Discussions similaires

  1. [jsp] property not found??
    Par champion dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 03/01/2005, 17h56
  2. requested URL /forms90/f90servlet was not found
    Par Aeternus dans le forum Oracle
    Réponses: 11
    Dernier message: 03/02/2004, 16h45
  3. Attribute .... not found !?
    Par YanK dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 08/10/2003, 10h27
  4. TXMLModule.create - name = resource not found
    Par pram dans le forum XMLRAD
    Réponses: 2
    Dernier message: 04/03/2003, 10h54
  5. Component not found
    Par Pm dans le forum XMLRAD
    Réponses: 2
    Dernier message: 28/01/2003, 14h40

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