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
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 /* * 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() { } }
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
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; } }
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
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> }
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.
Partager