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

Développement Web en Java Discussion :

Code de recherche qui ne fonctionne pas


Sujet :

Développement Web en Java

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    mai 2019
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mai 2019
    Messages : 87
    Points : 66
    Points
    66
    Par défaut Code de recherche qui ne fonctionne pas
    Bonjour/bonsoir

    Après 5 heures de recherche je ne peux pas résoudre mon problème, je vais d'abord vous montrer mon interface pour que vous compreniez mieux:

    Nom : dev 2.PNG
Affichages : 22
Taille : 45,9 Ko

    Comme vous pouvez voir que mon tableau montre tous les places existants, mon problème est que je veux que dès que j'entre le nom du local + le numéro d'une place et que je clique sur le bouton de recherche, le tableau affiche simplement les places qui porte le nom du local et le numéro de la place saisi par l'utilisateur.

    Le problème est que lorsque je clique sur le bouton de recherche, il me montre tous les places existants et aucune erreur ne s’affiche sur mon ide netbeans, donc je ne sais pas d’où vient cette erreur.

    voici mon code, on commence tout d'abord par la class Place :

    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
     
     
    package Modals;
     
    import javax.naming.spi.DirStateFactory.Result;
    import javax.xml.ws.spi.http.HttpExchange;
     
    /**
     *
     * @author hp
     */
    public class Place {
        String nom_local,prix,taille;
        int id,numero_place;
     
        public Place(String nom_local, String prix, String taille, int id, int numero_place) {
            this.nom_local = nom_local;
            this.prix = prix;
            this.taille = taille;
            this.id = id;
            this.numero_place = numero_place;
        }
     
        public Place() {
        }
     
        public String getNom_local() {
            return nom_local;
        }
     
        public void setNom_local(String nom_local) {
            this.nom_local = nom_local;
        }
     
        public String getPrix() {
            return prix;
        }
     
        public void setPrix(String prix) {
            this.prix = prix;
        }
     
        public String getTaille() {
            return taille;
        }
     
        public void setTaille(String taille) {
            this.taille = taille;
        }
     
        public int getId() {
            return id;
        }
     
        public void setId(int id) {
            this.id = id;
        }
     
        public int getNumero_place() {
            return numero_place;
        }
     
        public void setNumero_place(int numero_place) {
            this.numero_place = numero_place;
        }
     
     
     
     
     
     
       public Result Place(HttpExchange he) {
            throw new UnsupportedOperationException("Not supported yet.");
        }
     
     
     
     
     
    }
    et voici le code de mon servlet:

    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
     
     
    @Override
        protected void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            Connection c=Cnx.getcnx();
            String nom_local=request.getParameter("nom_local");
            String numeroplace=(String) request.getParameter("numeroplace");
            String prixplace=request.getParameter("prixplace");
            String tailleplace=request.getParameter("tailleplace");
            String action=request.getParameter("action");
            ResultSet re=null;
            Place p1=null;
            ArrayList<Place> listplace = new ArrayList<Place>();
            try {
                if("ajouter".equals(action)){
                    PreparedStatement st1=c.prepareStatement("insert into place values (null,?,?,?,?)");
                    st1.setString(1, nom_local);
                    st1.setInt(2, Integer.parseInt(numeroplace));
                    st1.setString(3, prixplace);
                    st1.setString(4, tailleplace);
                    int resadd=st1.executeUpdate();
                    if(resadd>0){
                        request.setAttribute("msg", "Place ajouter avec succés !");
                    }
                    else {
                        request.setAttribute("msg", "Place non ajouter !");
                        throw new Exception("Erreur vous avez entrez deux locaux ayant le meme numéro de place et le meme nom de local" );
                    }
                    getServletContext().getRequestDispatcher("/WEB-INF/Place_locaux.jsp").forward(request, response);
                }
     
                else if("Modifier".equals(action)){
                    PreparedStatement st2=c.prepareStatement("update place set  prix=? , taille=? where numero_place=? and nom_local=? ");
                    st2.setString(1, prixplace);
                    st2.setString(2, tailleplace);
                    st2.setInt(3, Integer.parseInt(numeroplace));
                    st2.setString(4, nom_local);
                    int resupdate=st2.executeUpdate();
                    if(resupdate>0){
                        request.setAttribute("msg2", "Place modifier avec succés !");
                    }
                    else {
                        request.setAttribute("msg2", "Place non modifier !");
                    }
                    getServletContext().getRequestDispatcher("/WEB-INF/Place_locaux.jsp").forward(request, response);
                }
     
                else if("supprimer".equals(action)){
                    PreparedStatement st3=c.prepareStatement("delete from place where id=?");
                    st3.setString(1, request.getParameter("id"));
                    st3.executeUpdate();
                }
                else if ("rechercher".equals(action)){
                    PreparedStatement st4=c.prepareStatement("select * from place where numero_place=? and nom_local=?");
                    st4.setInt(1, Integer.parseInt(numeroplace));
                    st4.setString(2, nom_local);
     
                    re=st4.executeQuery();
                    while(re.next()){
                        //nom_local,prix,taille,id,numero_place
                        p1=new Place(re.getString(2),re.getString(4),re.getString(5),re.getInt(1),re.getInt(3));
                        listplace.add((Place) p1);
                    }
                    getServletContext().getRequestDispatcher("/WEB-INF/Place_locaux.jsp").forward(request, response);
                }
     
            }
     
            catch(Exception ex){
              request.setAttribute("msg", "error !");
              ex.printStackTrace();
            }
        }
    et voici le code de ma jsp :

    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
     
     
    <form method="POST" action='Place_locaux'>
                <div class="form-group">
                    <label class='labelproprietaire'>Nom du local approprié à la place :</label>
                    <select class="browser-default custom-select" placeheader="Search here.." name="nom_local" required>
     
                            <option value="" disabled selected>Choose your local</option>
                            <%while(re1.next()){%>
                            <option><%=re1.getObject(2)%></option>
                            <%}%>
                    </select>
                </div>
                <div class="form-group">
                    <label class='labelproprietaire'>Numéro place :</label>
                    <input type="number" class="form-control" id="numeroplace" placeholder="Entrer le numéro de la place" name="numeroplace" >
                </div>
                <div class="form-group">
                    <label class='labelproprietaire'>Prix :</label>
                    <input type="text" class="form-control" id="prixplace" placeholder="Entrer le prix de la place" name="prixplace" >
     
                </div>
                <div class="form-group">
                    <label class='labelproprietaire'>Taille de la place :</label>
                    <input type="text" class="form-control" id="tailleplace" placeholder="Entrer la taille de la place" name="tailleplace" >
     
                </div>
     
               <div id='divbtnaddplace'>      
                    <button type="submit" class="btn btn-primary" id='btnajouterplace' style='vertical-align: 0;' name='action' value='ajouter'><i class="fas fa-plus-circle"></i>Ajouter</button>
                    <button type="submit" class="btn btn-info"  style='vertical-align: 0; width: 180px; height: 50px; text-align: center; text-transform: uppercase; font-size: 20px; border-radius: 20px; margin-top: 17px; margin-left: 15px; padding-top: 10px; ' name="action" value="rechercher"><i class="fas fa-search"></i>Rechercher</button>
     
               </div>
     
     
            </form>
     
                    <table class="table table-hover" style="margin-top: 20px;" id="table1">
      <thead>
        <tr class="table-active">
          <th scope="col">Nom local</th>
          <th scope="col">Numéro de la place</th>
          <th scope="col">Prix</th>
          <th scope="col">Taille</th>
          <th scope="col">Action</th>
     
     
        </tr>
      </thead>
      <tbody>
         <% 
              if( request.getAttribute("listplace") != null ){ 
                ArrayList<Place> listplace = (ArrayList<Place>) request.getAttribute("listplace");
                for(Place p1 : listplace ){
          %>
     
          <tr>
     
          <th scope="row"><%=p1.getNom_local()%></th>
          <td><%=p1.getNumero_place()%></td>
          <td><%=p1.getPrix()%></td>
          <td><%=p1.getTaille()%></td>
          <td><a href="#" class="btn btn-warning btn-lg" data-toggle="modal" data-target="#updatemodal" ><i class="fas fa-pen"></i></a> 
              <a href="#" class="btn btn-danger btn-lg" onclick="showremoverow(<%=p1.getId()%>);"><i class="fas fa-trash-alt"></i></a>
          </td>
              </tr>
          <%}} else {%>
     
          <%while(re2.next()){%>
     
          <tr id="ligne<%=re2.getObject(1)%>">
     
          <th scope="row"><%=re2.getObject(2)%></th>
          <td><%=re2.getObject(3)%></td>
          <td><%=re2.getObject(4)%></td>
          <td><%=re2.getObject(5)%></td>
          <td><a href="#" class="btn btn-warning btn-lg" data-toggle="modal" data-target="#updatemodal" ><i class="fas fa-pen"></i></a> 
              <a href="#" class="btn btn-danger btn-lg" onclick="showremoverow(<%=re2.getObject(1)%>);"><i class="fas fa-trash-alt"></i></a>
          </td>
          </tr>
     
          <%}%>
         <%}%>
     
     
      </tbody>
     
    </table>

    Aidez moi s'il vous plait !!

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    septembre 2009
    Messages
    12 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2009
    Messages : 12 065
    Points : 28 535
    Points
    28 535
    Billets dans le blog
    2
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    else if ("rechercher".equals(action)){
                    PreparedStatement st4=c.prepareStatement("select * from place where numero_place=? and nom_local=?");
                    st4.setInt(1, Integer.parseInt(numeroplace));
                    st4.setString(2, nom_local);
     
                    re=st4.executeQuery();
                    while(re.next()){
                        //nom_local,prix,taille,id,numero_place
                        p1=new Place(re.getString(2),re.getString(4),re.getString(5),re.getInt(1),re.getInt(3));
                        listplace.add((Place) p1);
                    }
                    getServletContext().getRequestDispatcher("/WEB-INF/Place_locaux.jsp").forward(request, response);
                }
    Ce que ton code fait,

    1. c'est faire une requête pour chercher les places qui correspondent à un numéro et un nom de local
    2. mettre des instances qui représentent les places trouvées dans une liste (listplace)
    3. faire un forward vers une jsp

    Mais il n'y a aucun code qui permettrait à Place_locaux.jsp de récupérer cette liste.
    Tu peux utiliser un attribut de request, que tu affectes avant de faire le forward :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.setAttribute("listeplaces",listplace);
    Ensuite dans Place_locaux.jsp, tu peux récupérer cet attribut :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    List<Place> listplace = (List<Place>)request.get("listeplaces");
    et donc construire ta vue pour qu'elle affiche les places de cette liste.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    mai 2019
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mai 2019
    Messages : 87
    Points : 66
    Points
    66
    Par défaut
    merci pour ta réponse j'ai ajouté le code que tu m'a dis voici le résutat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    while(re.next()){
                        //nom_local,prix,taille,id,numero_place
                        p1=new Place(re.getString(2),re.getString(4),re.getString(5),re.getInt(1),re.getInt(3));
                        listplace.add((Place) p1);
                        request.setAttribute("listeplaces",listplace);
                    }
    et voici la jsp :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <% 
              if( request.getAttribute("listplace") != null ){ 
     
                ArrayList<Place> listplace = (ArrayList<Place>)request.getAttribute("listeplaces");
                for(Place p1 : listplace ){
          %>

    mais j'ai toujours la meme erreur

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    septembre 2009
    Messages
    12 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2009
    Messages : 12 065
    Points : 28 535
    Points
    28 535
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par toztoztoze Voir le message
    mais j'ai toujours la meme erreur
    Quelle (même) erreur ? Tu n'as parlé d'erreur dans ton premier message. Tu as même écrit que tu n'avais pas d'erreur...

    Attention :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     if( request.getAttribute("listplace") != null ){
    il manque un s à listplace ! L'attribut listplace n'existe pas et donc cette condition est toujours fausse.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    mai 2019
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mai 2019
    Messages : 87
    Points : 66
    Points
    66
    Par défaut
    non je voulais dire que j'ai toujours le meme problème qui est quand je clic sur rechercher ça m'affiche tout les places qu'il y a désolé pour la mal explication.

    et oui j'avais pas vu maintenant ça marche merci beaucoup !!!!!!!!!

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    septembre 2009
    Messages
    12 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2009
    Messages : 12 065
    Points : 28 535
    Points
    28 535
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par toztoztoze Voir le message
    et oui j'avais pas vu maintenant ça marche merci beaucoup !!!!!!!!!
    Utiliser des variables static final peut te permettre d'éviter ce genre de fautes de frappe, même si le nom de l'attribut est erroné dès le départ. Et si tu fais une faute de frappe dans le nom de la variable, ça ne compile pas et tu le vois tout de suite dans un IDE. Et si tu dois changer le nom de l'attribut, tu ne risques pas d'en oublier une occurrence.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

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

Discussions similaires

  1. Réponses: 13
    Dernier message: 05/11/2013, 01h20
  2. Réponses: 6
    Dernier message: 21/12/2010, 21h00
  3. Un code en 10r2 qui ne fonctionne pas en 10r1
    Par gold15 dans le forum PL/SQL
    Réponses: 6
    Dernier message: 15/01/2009, 12h40
  4. Code qui ne fonctionne pas sur Mac
    Par malbaladejo dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 14/01/2005, 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