Bonjour à tous,
je suis occupé à faire un formulaire qui permet de modifier un utilisateur.
le principe est le suivant :
une page jsp: qui reprend une liste déroulante, on choisi l'utilisateur à modifier, cela part dans la servlet qui modifie un boolean et re forward sur la page jsp, qui alors fait apparaitre les champs du formulaire prés remplis avec les données de l'utilisateur ainsi qu'un bouton modifier.
jusque là tout va bien, mais quand on appuis sur modifier on repart sur la servlet qui dois alors envoyer au dao pour mise à jour en db et la plantage
je cherche depuis hier je vois le problème, mais je ne comprend pas pourquoi
voici l'erreur :
voici la 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 20-avr.-2011 22:20:42 org.apache.catalina.core.ApplicationDispatcher invoke GRAVE: "Servlet.service()" pour la servlet jsp a lancé une exception java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 at java.util.ArrayList.RangeCheck(Unknown Source) at java.util.ArrayList.get(Unknown Source) at org.apache.jsp.jsp.backEnd.ManageUser_jsp._jspService(ManageUser_jsp.java:229) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:419) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:391) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684) at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:471) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:402) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:329) at be.festiwavre.rl.servlets.ModifUser.doPost(ModifUser.java:103) at javax.servlet.http.HttpServlet.service(HttpServlet.java:641) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:395) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:250) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) 20-avr.-2011 22:20:42 org.apache.catalina.core.StandardWrapperValve invoke GRAVE: Servlet.service() for servlet [ModifUser] in context with path [/FestiWavre] threw exception [java.lang.IndexOutOfBoundsException: Index: 0, Size: 0] with root cause java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 at java.util.ArrayList.RangeCheck(Unknown Source) at java.util.ArrayList.get(Unknown Source) at org.apache.jsp.jsp.backEnd.ManageUser_jsp._jspService(ManageUser_jsp.java:229) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:419) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:391) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684) at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:471) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:402) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:329) at be.festiwavre.rl.servlets.ModifUser.doPost(ModifUser.java:103) at javax.servlet.http.HttpServlet.service(HttpServlet.java:641) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:395) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:250) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source)
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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220 <?xml version="1.0" encoding="ISO-8859-1" ?> <%@page import="be.festiwavre.model.rl.modifUsers.ModifUsersModel"%> <%@page import="be.festiwavre.dao.rl.modifUsersForm.ModifUserDAOMySqlImpl"%> <%@page import="be.festiwavre.dao.rl.modifUsersForm.ModifUserDAO"%> <%@page import="be.festiwavre.dao.rl.modifUsersForm.ModifUserTo"%> <%@page import="be.festiwavre.dao.rl.addUsersForm.AddUserTo"%> <%@page import="be.festiwavre.dao.rl.addUsersForm.AddUserDAOMySqlImpl"%> <%@page import="java.util.List"%> <%@page import="be.festiwavre.dao.rl.addUsersForm.AddUserDAO"%> <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Festi_Wavre : Logiciel de gestion d'évènement "Gestion des utilisateurs"</title> <meta http-equiv="keywords" content="Festivité, Evènement, Wavre" /> <meta http-equiv="description" content="Festi_Wavre : Gestion des évènement de la Ville de Wavre" /> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" /> <meta http-equiv="author" content="Rudy Lemaitre - 2011" /> <link rel="stylesheet" type="text/css" href="../../css/manageUsers_rl.css" /> <% //Vérification de la session si elle existe si pas on renvoie sur la page d'accueil if((session.getAttribute("login") == null) || (!session.getAttribute("typeUser").equals("Administrateur"))) { response.sendRedirect("../../index.jsp"); } %> </head> <body> <h1>Gestion des utilisateurs</h1> <!-- Ajout d'un nouvelle utilisateur --> <form name="form_add_user" id="form_add_user" action="<%=request.getContextPath()%>/AddUser" method="post"> <fieldset> <legend> Ajouter un utilisateur </legend> <p> <label> Nom : </label> <input type="text" title="Entrer le nom de l'utilisateur" name="new_lastname" id="form_new_lastname" /><span class="obligation"> *</span> </p> <p> <label> Prénom : </label> <input type="text" title="Entrer le prénom de l'utilisateur" name="new_firstname" id="form_new_firstname" /> <span class="obligation"> *</span> </p> <p> <label> Login de connexion : </label> <input type="text" title="Entrer le login de l'utilisateur" name="new_login" id="form_new_login" /> <span class="obligation"> *</span> </p> <p> <label> Mot de passe : </label> <input type="password" title="Entrer le mot de passe de l'utilisateur" name="new_password" id="form_new_password" /> <span class="obligation"> *</span> </p> <p> <label> Type d'utilisateur : </label> <select name="new_type_user" id="form_new_type_user" title="Faite votre choix" size="1"> <!--On rend le premier champ vide --> <option value="">Type</option> <% List<AddUserTo> loadListeTypeUserToAdd; AddUserDAO loadTypeUserToAdd = new AddUserDAOMySqlImpl(); //Exécution de la requete pour chargement de la liste loadListeTypeUserToAdd=loadTypeUserToAdd.returnTypeUser(); //On boucle pour remplir les champs for (int i=0; i<loadListeTypeUserToAdd.size();i++){ %> <option value="<%=loadListeTypeUserToAdd.get(i).getIdTypeUser()%>"><%=loadListeTypeUserToAdd.get(i).getTypeUser()%></option> <% } %> </select> <span class="obligation"> *</span> </p> <p> <input type="submit" title="Ajouter le nouvel utilisateur" value="Ajouter" /> </p> <p> <i>Les champs marqués d'un <span class="obligation">*</span> sont obligatoires.</i> </p> </fieldset> </form> <!-- Modification d'un utilisateur --> <form name="modif_add_user" id="modif_add_user" action="<%=request.getContextPath()%>/ModifUser" method="post"> <fieldset> <legend> Modification d'un utilisateur </legend> <% if (ModifUsersModel.displayList){ %> <p> <label> Nom : </label> <select name="modif_user" id="form_modif_user" title="Faite votre choix" size="1" onchange="submit()"> <!--On rend le premier champ vide --> <option value="">Utilisateur</option> <% List<ModifUserTo> loadListeAllUserForModif; ModifUserDAO LoadListeUsers = new ModifUserDAOMySqlImpl(); //Exécution de la requete pour chargemnet des utilisateur loadListeAllUserForModif = LoadListeUsers.returnListUsers(); //On boucle pour remplir les champs for (int i=0; i<loadListeAllUserForModif.size(); i++) { %> <option value="<%=loadListeAllUserForModif.get(i).getIdUser()%>"><%=loadListeAllUserForModif.get(i).getLastNameUser()%> <%=loadListeAllUserForModif.get(i).getFirstNameUser()%></option> <% } %> </select> </p> <%} %> <% if (ModifUsersModel.display){ //on appel la méthode pour récuper les champs par rapport au choix utilisateur précédent et on garnis le formulaire List<ModifUserTo> user = new ModifUsersModel().ReturnUserById(request.getParameter("modif_user")); %> <p> <label> Nom : </label> <input type="text" value="<%=user.get(0).getLastNameUser()%>" title="Entrer le nom de l'utilisateur" name="modif_lastname" id="form_modif_lastname" /><span class="obligation"> *</span> </p> <p> <label> Prénom : </label> <input type="text" value="<%=user.get(0).getFirstNameUser()%>" title="Entrer le prénom de l'utilisateur" name="modif_firstname" id="form_modif_firstname" /> <span class="obligation"> *</span> </p> <p> <label> Login de connexion : </label> <input type="text" value="<%=user.get(0).getLoginUser()%>" title="Entrer le login de l'utilisateur" name="modif_login" id="form_modif_login" /> <span class="obligation"> *</span> </p> <p> <label> Mot de passe : </label> <input type="password" value="<%=user.get(0).getPasswordUser()%>" title="Entrer le mot de passe de l'utilisateur" name="modif_password" id="form_modif_password" /> <span class="obligation"> *</span> </p> <p> <label> Type d'utilisateur : </label> <select name="modif_type_user" id="form_modif_type_user" title="Faite votre choix" size="1"> <!--On rend le premier champ vide --> <option value="">Type</option> <% //On boucle pour remplir les champs for (int i=0; i<loadListeTypeUserToAdd.size();i++){ %> <option value="<%=loadListeTypeUserToAdd.get(i).getIdTypeUser()%>"><%=loadListeTypeUserToAdd.get(i).getTypeUser()%></option> <%} %> </select> <span class="obligation"> *</span> </p> <p> <input type="submit" title="Modifier l'utilisateur" value="Modifier" /> </p> <p> <i>Les champs marqués d'un <span class="obligation">*</span> sont obligatoires.</i> </p> <%} %> </fieldset> </form> <!-- Supprimer un utilisateur --> <form action="DelUser" method="post"> <fieldset> <legend> Supprimer un utilisateur </legend> <p> <label> Nom : </label> <select name="del_user" id="form_del_user" title="Faite votre choix" size="1"> <!--On rend le premier champ vide --> <option value="">Utilisateur</option> <% List<ModifUserTo> loadListeAllUserForModif; ModifUserDAO LoadListeUsers = new ModifUserDAOMySqlImpl(); //Exécution de la requete pour chargemnet des utilisateur loadListeAllUserForModif = LoadListeUsers.returnListUsers(); //On boucle pour remplir les champs for (int i=0; i<loadListeAllUserForModif.size(); i++) { %> <option value="<%=loadListeAllUserForModif.get(i).getIdUser()%>"><%=loadListeAllUserForModif.get(i).getLastNameUser()%> <%=loadListeAllUserForModif.get(i).getFirstNameUser()%></option> <% } %> </select> </p> <p> <input type="button" title="Supprimer l'utilisateur" value="Supprimer" /> </p> </fieldset> </form> <jsp:include page="/comp/footer.rl.comp"></jsp:include> </body> </html>
voici la classe model :
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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128 package be.festiwavre.rl.servlets; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.RequestDispatcher; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.apache.log4j.Logger; import be.festiwavre.model.rl.modifUsers.ModifUsersModel; /** * Servlet de gestion des utilisateurs Contrôle pour la modification d'un * utilisateur * * @author Rudy Lemaitre */ @WebServlet("/ModifUser") public class ModifUser extends HttpServlet { private static final long serialVersionUID = 1L; /** * Constructeur par défaut * * @author Rudy Lemaitre */ public ModifUser() { super(); } /** * mise en service du logger */ private static final Logger log = Logger.getLogger(ModifUser.class); /** * Méthode appelée par le conteneur à chaque instanciation de la servlet * * @author Rudy Lemaitre */ public void init(ServletConfig config) throws ServletException { } /** * @see Servlet#destroy() * @author Rudy Lemaitre */ public void destroy() { } /** * Méthode doGet * * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse * response) * @throws ServletException * , IOException * @author Rudy Lemaitre */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">"); out.println("<HTML>"); out.println(" <HEAD><TITLE>Contrôle d'accès</TITLE></HEAD>"); out.println(" <BODY>"); out.println(" <BR />Pour visualiser les pages, veuillez passer par la page de connexion de la plateforme."); out.println(" <A HREF='/FestiWavre/index.jsp'>Me connecter</A>"); out.println(" </BODY>"); out.println("</HTML>"); out.flush(); out.close(); } /** * Méthode doPost * * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse * response) * @author Rudy Lemaitre */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { if (request.getParameter("modif_user") != "") { // on modifie la variable pour permettre l'affichage à true dans la // jsp ModifUsersModel display = new ModifUsersModel(); // affichage du formulaire display.DisplayFormModification(true); // caché liste déroulante display.DisplayList(false); // on renvoie vers la jsp pour affichage du menu RequestDispatcher pageforward = request .getRequestDispatcher("jsp/backEnd/ManageUser.jsp"); pageforward.forward(request, response); // on remet la variable à l'origine pour la prochaine utilisation //display.DisplayFormModification(false); //display.DisplayList(true); log.debug("Changement du status disable vers enable"); } else { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">"); out.println("<HTML>"); out.println(" <HEAD><TITLE>Contrôle des champs</TITLE></HEAD>"); out.println(" <meta http-equiv=\"refresh\" content=\"2;url=jsp/backEnd/ManageUser.jsp\" />"); out.println(" <BODY>"); out.println(" <BR /><h1><center>Vous devez choisir un utilisateur à modifier !</center></h1>"); out.println(" </BODY>"); out.println("</HTML>"); out.flush(); out.close(); } System.out.println(request.getParameter("modif_user")); } }
pour l'instant c'est du basic : jsp to servlet et servelt to jsp pour après revenir à jsp to 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
113
114
115
116
117 /** * */ package be.festiwavre.model.rl.modifUsers; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import org.apache.log4j.Logger; import be.festiwavre.dao.rl.addUsers.AddUsersDbDAO; import be.festiwavre.dao.rl.addUsers.AddUsersDbDAOMySqlImpl; import be.festiwavre.dao.rl.modifUsers.ModifUsersDbDAO; import be.festiwavre.dao.rl.modifUsers.ModifUsersDbDAOMySqlImpl; import be.festiwavre.dao.rl.modifUsersForm.ModifUserDAO; import be.festiwavre.dao.rl.modifUsersForm.ModifUserDAOMySqlImpl; import be.festiwavre.dao.rl.modifUsersForm.ModifUserTo; import be.festiwavre.model.rl.checkUsers.CheckUsersModel; /** * Classe model pour la pour la modification d'un utilisateur * * @author Rudy Lemaitre * */ public class ModifUsersModel { public static boolean display = false; public static boolean displayList = true; /** * Constructeur * * @author Rudy Lemaitre */ public ModifUsersModel() { super(); } /** * mise en service du logger */ private static final Logger log = Logger.getLogger(ModifUsersModel.class); /** * Classe qui appel le DAO pour ajouter un nouvelle utilisateur en db * * @param typeUser * @param lastName * @param firstName * @param login * @param passwordUser * @param idUser * @return boolean * @author Rudy Lemaitre */ public boolean modifUser(String typeUser, String lastName, String firstName, String login, String passwordUser, String idUser) { ModifUsersDbDAO modifUser = new ModifUsersDbDAOMySqlImpl(); boolean validation = false; try { validation = modifUser.modifNewUser(typeUser, lastName, firstName, login, passwordUser, idUser); log.debug("opération réussi"); } catch (SQLException e) { System.out.println(e); e.printStackTrace(); } return validation; } /** * Méthode retournant les informations d'un utilisateur en lui passant un id * user * * @param idUser * @return * @author Rudy Lemaitre */ public List<ModifUserTo> ReturnUserById(String idUser) { List<ModifUserTo> loadUserById; ModifUserDAO userById = new ModifUserDAOMySqlImpl(); // Exécution de la requete pour avoir l'utilisateur afin d'allimenter // les champs loadUserById = userById.returnUserById(idUser); return loadUserById; } /** * Méthode pour l'affichage des champs du formulaire de modification * d'utilisateur * * @author Rudy Lemaitre */ public void DisplayFormModification(boolean inDisplay) { display = inDisplay; } /** * Méthode pour caché la liste déroulante après validation du formulaire * d'utilisateur * * @author Rudy Lemaitre */ public void DisplayList(boolean inDisplay) { displayList = inDisplay; } }
le problème vien de mes champs value de pré remplissage dans la servlet, j'arrive bien à récupérer et à afficher, mais quand je re post dans la servlet les donnée via le bouton alors msg d'erreur
je continue à chercher mais si vous avez une piste cela va m'aider au niveau de mon timming
je sais que je dois utiliser des uses bean que je suis pas très MVC dans ce modèle, mais par manque de temps pour rendre le projet et surtout que je dois apprendre le langage par moi même, cela sera pour après dans la prochaine évolution du projet
encore merci pour votre aide
Rudy
Partager