Je veux afficher la liste des clients et un champ de texte pour chercher un client suivant le mot cle et en respectant une architecture MVC,j'ai reussi pour ça sans MVC mais quand j'ai utilisé l'architecture MVC j'ai trouvé problème,voici les codes:
la vue
class operateur dont contient la methode chercheclientsparmotcles()
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 <% ClientForm cf=(ClientForm)session.getAttribute("cf"); if(cf==null) cf=new ClientForm(); Iterator itCli=cf.getLesClients().iterator(); %> <html> <head> <title>Clients</title> </head> <body bgcolor="#FFFFFF"> <center> <form method="post" action="clients"> Client:<input type="text" name="motCle" value="<%=cf.getMotCle()%>"> <input name="chercher" type="submit" id="chercher" value="Chercher"> </form> <table width="80%" border="1"> <tr> <th scope="col">ID Client </th> <th scope="col">NOM</th> <th scope="col">EMAIL</th> <th scope="col">TEL</th> <th scope="col">VILLE</th> </tr> <% while(itCli.hasNext()){ Client cli=(Client)itCli.next(); %> <tr> <td><%=cli.getIdClient()%></td> <td><%=cli.getNom()%></td> <td><%=cli.getEmail()%></td> <td><%=cli.getTel()%></td> <td><%=cli.getVille()%></td> </tr> <%} %> </table>
le conroleur:
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 public Vector chercheClientsParMotCles(String motCle){ Vector lesClients=new Vector(); Connection conn=Utilitaire.getConnection(); try { PreparedStatement ps=conn.prepareStatement("select * from clients where nom LIKE ?"); ps.setString(1,"%"+motCle+"%"); ResultSet rs=ps.executeQuery(); while(rs.next()){ Client c=new Client(); c.setIdClient(rs.getInt("ID_CLIENT")); c.setNom(rs.getString("NOM")); c.setEmail(rs.getString("EMAIL")); c.setTel(rs.getString("TEL")); c.setVille(rs.getString("VILLE")); lesClients.add(c); } rs.close(); ps.close(); } catch (SQLException e) { e.printStackTrace(); } return lesClients; }le fichier clientform:
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 package bean; import java.io.IOException; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; import form.beans.ClientForm; import mod.fact.Operateur; public class ControleurServlet extends HttpServlet { public void dopost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request,response); } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // Créer le form bean pour stocker les données de la requête // et également les résultats à afficher. ClientForm cf=new ClientForm(); // récupérer les données de la requête String mot=request.getParameter("motCle"); if(mot==null) mot=""; // stocker les données de la reqête dans le form bean cf.setMotCle(mot); //Récupérer le résultats de la couche métier // en lui transmettant le mot clé Operateur op=new Operateur(); Vector clients=op.chercheClientsParMotCles(cf.getMotCle()); // Stocker le résultat dans le form bean cf.setLesClients(clients); // stocker le form bean dans la session courante HttpSession session=request.getSession(); session.setAttribute("cf",cf); // rediriger vers la vue pour afficher response.sendRedirect("Clients2.jsp"); } }
Donc ou réside le problème?
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 package form.beans; import java.util.Vector; public class ClientForm { private String motCle=""; private Vector lesClients=new Vector(); public Vector getLesClients() { return lesClients; } public void setLesClients(Vector lesClients) { this.lesClients = lesClients; } public String getMotCle() { return motCle; } public void setMotCle(String motCle) { this.motCle = motCle; } }
Et merci d'avance.
Partager