Erreur appel de fonction(résolu: nocomment) + pb affichage(resolu)

Bonjour,

J’ai un petit problème sur un appel de fonction l’erreur est :
cannot find symbol
method rechercheVehiculeParMarque(java.lang.String)
class RechercheVehiculeParMarqueAction

pour la ligne :rechercheVehiculeParMarque(saisie); => présent public ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)throws Exception

voici le code complet de la page


/*
 * RechercheVehiculeParMarqueAction.java
 *
 * Created on 18 avril 2007, 19:01
 */

import java.sql.*;
import javax.servlet.http.*;
import org.apache.struts.action.*;
import java.util.ArrayList;
import javax.sql.*;
import org.apache.struts.Globals;
import java.util.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.sql.DriverManager;


/**
 *
 * @author Florent
 * @version
 */

public class RechercheVehiculeParMarqueAction extends Action {
    
    /* forward name="success" path="" */
    private final static String SUCCESS = "sucess";
    
    /**
     * This is the action called from the Struts framework.
     * @param mapping The ActionMapping used to select this instance.
     * @param form The optional ActionForm bean for this request.
     * @param request The HTTP Request we are processing.
     * @param response The HTTP Response we are processing.
     * @throws java.lang.Exception
     * @return
     */
 // permet de réenvoyer le contenu du résultat a la page résultat
    public ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)throws Exception 
            {
            RechercheVehiculeParMarque Form = (RechercheVehiculeParMarque)form;
            String saisie = Form.getSaisie();
            rechercheVehiculeParMarque(saisie);
            return mapping.findForward(SUCCESS);
            }
   
 
 private ArrayList rechercherVehiculeParMarque(String saisie) throws ClassNotFoundException, SQLException
         {
         String MODELE = null,COULEUR = null;
         int PRIX;
         ResultSet resultat = null;
         ArrayList liste = new ArrayList();
         Class.forName("org.apache.derby.jdbc.ClientDriver");
         Connection conn =DriverManager.getConnection("jdbc:derby://localhost:1527/Application", "nfe114", "nfe114");
         Statement statement = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
         String sql = "select * FROM \"NFE114\".\"VEHICULE\" WHERE MARQUE='"+saisie+"'";
         System.out.println("select * FROM \"NFE114\".\"VEHICULE\" WHERE MARQUE='"+saisie+"'");
         resultat = statement.executeQuery(sql);
         while(resultat.next())
             {
             int ID = resultat.getInt(1);
             String MARQUE = resultat.getString(2);
             PRIX = resultat.getInt(3);
             java.sql.Date date = resultat.getDate(4);
             int row = resultat.getRow();
             System.out.println(saisie);
             System.out.println("Données contenues dans la ligne "+row);
             System.out.println("id : "+ID+" marque : "+MARQUE+" prix : "+PRIX+" modele : "+MODELE+" couleur : "+COULEUR+" <html:link href=panier.do?id='"+ID+"'>Panier</>");
             //objet= "id : "+ID+" marque : "+MARQUE+" prix : "+PRIX+" modele : "+MODELE+" couleur : "+COULEUR+" <html:link href=panier.do?id='"+ID+"'>Panier</>";
             liste.add(new RechercheVehiculeParMarque(resultat.getInt(1), resultat.getString(2)));
             }
           return liste;
           }
 }

merci d’avance
Edité le 03/06/2007 à 12:43

Putain sans l’indentation c’est de la merde là :confused: (tu n’y est pour rien).

Bref.

-> String sql = “select * FROM “NFE114”.“VEHICULE” WHERE MARQUE=’”+saisie+"’";

Comme en PHP, on passe toute de suite aux requêtes paramétrées… surtout qu’en java, ça se fait les doigts dans le ***

Pour l’erreur, file l’erreur complète. N’enlève rien ça n’aide pas :slight_smile:

(déjà que l’indentation & le forum …)

voila l’ereur complète:

Compiling 3 source files to C:\Documents and Settings\Florent\netbeans\Vehiculeweb\build\web\WEB-INF\classes
C:\Documents and Settings\Florent\netbeans\Vehiculeweb\src\java\RechercheVehiculeParMarqueAction.java:44: cannot find symbol
symbol : method rechercheVehiculeParMarque(java.lang.String)
location: class RechercheVehiculeParMarqueAction


pardon juste la fin (ca va avec location) (desole j ai fait une fausse manip)

rechercheVehiculeParMarque(saisie);

heu…oui…mon problème était juste ca…j’avoue…suis tres tres distrait désolé…

merci bien paneb

j’ai pu ainsi continuer le programme.

J ai été obligé de corriger 2/3 trucs et maintenant je m intéresse a l’affichage du résultat de la requete

voici le code de la page de résultat


<%@ taglib uri="http://jakarta.apache.org/struts/tags-logic" prefix="logic" %>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean" %>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <logic:notPresent name="resultatrecherche">Aucun résultat retourné</logic:notPresent>
        
        <logic:present name="resultatrecherche">
            <table border="1">
                <thead>
                    <tr>
                        <th><bean:message key="ID" /></th>
                        <th><bean:message key="MARQUE" /></th>
                    </tr>
                </thead>
                <tbody>
                    <logic:iterate id="ID" name="resultatrecherche">
                        <tr>
                            <td><bean:write name="ID" property="ID"/></td>
                            <td><bean:write name="ID" property="MARQUE"/></td>
                        </tr>
                    </logic:iterate>
                </tbody>
            </table>
        </logic:present>
        Ajoutez le résultat de la recherche!!!!!!
        <bean:define id="myBeanValue" name="myBean" property="myProperty" />
        <html:link page="panier.do?id='1'">Panier</html:link>
        
    </body>
</html>


Donc je suis sensé récupérer la variable liste (que la fonction recherchervehiculeparmarqueaction creait dans le Arraylist) puis en afficher le contenu sachant que je récupère deux champs de la base de données ID et MARQUE (suite à resultat.getInt(1), resultat.getString(2) )

Par contre j ai beaucoup de mal a comprendre ce que c’est ces “key” qu’il faut mettre dans les logic et c est d’ailleurs la que ca coince (meme si il y a pas qu’ici ) car cela provoque l’erreur : javax.servlet.ServletException: Missing message for key “ID”

qu en pesez vous?

merci
Edité le 02/06/2007 à 19:04

j ai en partie trouver l’erreur, j avais pas mis correctement les message dans mon fichier properties.

Par contre dans le logic:iterate, rien ne va avec le message d erreur:
javax.servlet.ServletException: No getter method for property: “MARQUE” of bean: “id”

c est bon j ai trouvé.
dans une autre partie de mon code je recuperais mal marque:
avec ca ce fut bon:

public String getMARQUE() {
return MARQUE;
}

/**
 * @param string
 */
public void setMARQUE(String MARQUE) {
    this.MARQUE = MARQUE;
}

merci en tout cas