Bonsoir à tous, depuis quelque heures je bute sur cette erreur "javax.el.PropertyNotFoundException: Property 'prenom' not found on type java.lang.String".
Au fait je fais un exercice en JEE.
voici mon DOMAINE
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
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.objis.proxybanquev2.proxybanquev2domaine;
 
/**
 *
 * @author Abdel veno vedi vici
 */
public class Client {
   private Long idClient;
    private String nom;
    private String prenom;
    private String email;
    private String adresse;
    private Long idConseiller;
 
    public Long getIdClient() {
        return idClient;
    }
 
    public void setIdClient(Long idClient) {
        this.idClient = idClient;
    }
 
    public String getNom() {
        return nom;
    }
 
    public void setNom(String nom) {
        this.nom = nom;
    }
 
    public String getPrenom() {
        return prenom;
    }
 
    public void setPrenom(String prenom) {
        this.prenom = prenom;
    }
 
    public String getEmail() {
        return email;
    }
 
    public void setEmail(String email) {
        this.email = email;
    }
 
    public String getAdresse() {
        return adresse;
    }
 
    public void setAdresse(String contact) {
        this.adresse = contact;
    }
 
    public Long getIdConseiller() {
        return idConseiller;
    }
 
    public void setIdConseiller(Long idConseiller) {
        this.idConseiller = idConseiller;
    }
 
    public Client(Long idClient, String nom, String prenom, String email, String adresse, Long idConseiller) {
        this.idClient = idClient;
        this.nom = nom;
        this.prenom = prenom;
        this.email = email;
        this.adresse = adresse;
        this.idConseiller = idConseiller;
    }
 
    public Client() {
    }
 
 
}
DAO:
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
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.objis.proxybanquev2.proxybanquev2dao.impl;
 
import com.objis.proxybanquev2.proxybanquev2dao.inter.IClientDao;
import com.objis.proxybanquev2.proxybanquev2domaine.Client;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.LinkedList;
import java.util.logging.Level;
import java.util.logging.Logger;
 
/**
 *
 * @author Abdel veno vedi vici
 */
public class ClientDaoImpl implements IClientDao {
 
 
 
    /**
     * Retourner la liste des clients d'un conseiller
     * @param idConseiller
     * @return Collection Client pour un conseiller donné
     */
    @Override
    public LinkedList<Client> FindClientByConseiller(Long idConseiller) {
         String listSql = "Select *  from client where idconseiller=? ";
        LinkedList<Client> clients = new LinkedList<>();
 
 
        try {
            PreparedStatement ps = ConnexionImpl.getConnexion().prepareStatement(listSql);
           ps.setLong(1, idConseiller);
            ResultSet rs = ps.executeQuery();
 
            while (rs.next()) {
                Client client = new Client();
                client.setIdClient(rs.getLong("idClient"));
                client.setNom(rs.getString("nom"));
                client.setPrenom(rs.getString("prenom"));
                client.setEmail(rs.getString("email"));
                client.setAdresse(rs.getString("adresse"));
                client.setIdConseiller(rs.getLong("idconseiller"));
 
                clients.add(client);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
 
        return clients;
    }
 
    /**
     *
     * @param idclient
     * @return
     */
    @Override
    public LinkedList<Client> selectOne(Long idclient){
    String listSql = "Select *  from client where idClient=? ";
        LinkedList<Client> clients = new LinkedList<>();
 
 
        try {
            PreparedStatement ps = ConnexionImpl.getConnexion().prepareStatement(listSql);
           ps.setLong(1, idclient);
            ResultSet rs = ps.executeQuery();
 
            while (rs.next()) {
                Client client = new Client();
                client.setIdClient(rs.getLong("idClient"));
                client.setNom(rs.getString("nom"));
                client.setPrenom(rs.getString("prenom"));
                client.setEmail(rs.getString("email"));
                client.setAdresse(rs.getString("adresse"));
                client.setIdConseiller(rs.getLong("idconseiller"));
 
                clients.add(client);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
 
        return clients;
    }
 
    @Override
    public boolean update(Client client) {
        int val=-1;
        try {
             String update ="update client set nom=?,prenom=?,email=?,adresse=?,idconseiller=? where idClient=?";
            PreparedStatement ps = ConnexionImpl.getConnexion().prepareStatement(update);
            ps.setString(1, client.getNom());
            ps.setString(2, client.getPrenom());
            ps.setString(3, client.getEmail());
            ps.setString(4, client.getAdresse());
            ps.setLong(5, client.getIdConseiller());
            ps.setLong(6, client.getIdConseiller());
            val = ps.executeUpdate();
        } catch (SQLException ex) {
            Logger.getLogger(ClientDaoImpl.class.getName()).log(Level.SEVERE, null, ex);
        }
      return  val>0;
    }
 
}
Voici la 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
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
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.objis.proxybanquev2.proxybanquev2web.controleur;
 
import com.objis.proxybanquev2.proxybanquev2domaine.Client;
import com.objis.proxybanquev2.proxybanquev2service.impl.ClientServiceImpl;
import com.objis.proxybanquev2.proxybanquev2service.inter.IClientService;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.LinkedList;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
/**
 *
 * @author KRA
 */
@WebServlet(name = "ModifierClient", urlPatterns = {"/ModifierClient"})
public class ModifierClient extends HttpServlet {
 
    private IClientService clientservice = new ClientServiceImpl();
 
    /**
     * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
     * methods.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        try (PrintWriter out = response.getWriter()) {
            /* TODO output your page here. You may use following sample code. */
            out.println("<!DOCTYPE html>");
            out.println("<html>");
            out.println("<head>");
            out.println("<title>Servlet ModifierClient</title>");            
            out.println("</head>");
            out.println("<body>");
            out.println("<h1>Servlet ModifierClient at " + request.getContextPath() + "</h1>");
            out.println("</body>");
            out.println("</html>");
        }
    }
 
    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /**
     * Handles the HTTP <code>GET</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
 
         Long idclient=null;
 
         idclient =Long.parseLong( request.getParameter("idclient"));
 
         LinkedList<Client> client = new LinkedList<>();
         client =clientservice.selectOne(idclient);
          for(Client c : client){
                                 //  System.out.println(c.getNom());
                                  //  System.out.println(c.getPrenom());
                                     System.out.println(c.getEmail());
                                      System.out.println(c.getAdresse());
 
                  }
       request.setAttribute("client", client);
        request.getRequestDispatcher("editerClient.jsp").forward(request, response);
 
    }
 
    /**
     * Handles the HTTP <code>POST</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }
 
    /**
     * Returns a short description of the servlet.
     *
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>
 
}
la vue:
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
 
 
 
  <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@include file="header.jsp" %>
            <!-- ******************************************************************-->
            <!--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ debut de le content @@@@@@@@@@@@@@@@@-->
            <!-- ******************************************************************-->
 
  <div class="content-wrapper">
    <div class="container-fluid">
      <!-- Breadcrumbs-->
      <ol class="breadcrumb">
        <li class="breadcrumb-item">
          <a href="index.html">Accueil</a>
        </li>
        <li class="breadcrumb-item active">Modification d'un client</li>
      </ol>
      <div class="row">
        <div class="col-12">
 
            <!-- ******************************************************************-->
            <!--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ici le content @@@@@@@@@@@@@@@@@-->
            <!-- ******************************************************************-->
 
           <div class="container">
    <div class="card card-login mx-auto mt-5">
      <div class="card-header">Modification d'un client</div>
      <div class="card-body">
        <form>
            <c:forEach items="client" var="c">
 
              <div class="form-group">
            <label for="exampleInputPassword1">Nom</label>
            <input class="form-control" id="nom" type="text" aria-describedby="emailHelp" name="nom" value=${c.nom}>
          </div>
 
          <div class="form-group">
            <label for="exampleInputEmail1">Prenom</label>
            <input class="form-control" id="prenom" type="text" aria-describedby="emailHelp" name="prenom" value="${c.prenom}">
          </div>
          <div class="form-group">
            <label for="exampleInputPassword1">E-mail</label>
            <input class="form-control" id="email" type="text" aria-describedby="emailHelp" name="email" value="${c.email}">
          </div>
           <div class="form-group">
            <label for="exampleInputPassword1">Adressel</label>
            <input class="form-control" id="adresse" type="text" aria-describedby="emailHelp" name="adresse" value="${c.adresse}">
            </di>
            <div class="form-group">
                <label for="exampleInputPassword1"></label>
                <input type="submit" id="valider" value="Valider" class="btn btn-success">
                <input type="reset" id="ennuler" value="Annuler" class="btn btn-warning">
          </di
          <div >
 
          </div>
         </c:forEach>
        </form>
 
      </div>
    </div>
  </div>
 
 
          <!-- ******************************************************************-->
          <!--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ici le content @@@@@@@@@@@@@@@@@-->
          <!-- ******************************************************************-->
 
          </div>
      </div>
    </div>
    <!-- /.container-fluid-->
    <!-- /.content-wrapper-->
    <%@include file="ProxyFooter.jsp" %>

C'est au niveau de la récupération des données dans la vue que rencontre l'erreur.