Bonjour,

Description de Situation :
Si l'utilisateur fait un choix ou + dans les checkbox et il n'a pas saisi le nom, puis il a clické sur envoyer, alors on doit le diriger vers le même formulaire en conservant les choix qu'il les a déjà fait, mon problème est de conserver ses choix en cas de la non validation de nom, je ne sais pas comment faire, j'ai essayé de le réussir mais je n'arrive pas à réussir.

index.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
 
<%
 String Loisir[][] = {{"id_fct1","fct1"},{"id_fct2","fct2"},{"id_fct3","fct3"}}
%>
<HTML>
	<HEAD> <title> formulaires et servlets </title>
	</HEAD>
	<BODY>
        <%
            String[] loisir_jsp = null;
if(request.getAttribute("nom_servlet") != null)
            {
                loisir_jsp = (String[]) request.getAttribute("loisir_servlet");
                nom_jsp = (String) request.getAttribute("nom_servlet");
}
 
%>
		<FORM method="POST" action="MyServlet">
				Enregistrement d un utilisateur
				<TABLE border=0>
					<TR>
						<TD>Nom :</TD> <TD><INPUT type=text name="nom"></TD>
                        <td> <% if(request.getAttribute("nom_servlet") != null && nom_jsp == "") out.print("Remplire ce Champs");%> </td>
					</TR>
 
<TR>
						<TD>loisirs :</TD>
						<TD>
                            <%
                                for(i=0; i < Loisir.length; i++)
                                {
                            %>
                            <INPUT type=checkbox name = "loisirs" value="<%Loisir[i][0]%>" <% if(loisir_jsp.length != 0){for(int k=0; k < loisir_jsp.length ; k++){ if(Loisir[i][0].equals(loisir_jsp[k])) out.print(" checked");}}%> > <%= Loisir[i][1]%>
  <%
                                }
                            %>
<TR>
						<TD COLSPAN=2><INPUT type="submit" value="Envoyer"></TD>
					</TR>
				</TABLE>
		</FORM>
	</BODY>
</HTML>
MyServlet.java
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
 public void doPost(HttpServletRequest request,
					HttpServletResponse response)
	  throws ServletException, IOException {
String[] trait_loisir_jsp = request.getParameterValues("loisir");
String trait_nom_jsp = request.getParameter("nom");
 
request.setAttribute("nom_servlet",trait_nom_jsp);
 request.setAttribute("loisir_servlet",trait_loisir_jsp);
String nextJSP = "/index.jsp";
            RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(nextJSP);
            dispatcher.forward(request,response);
Si quelqu'un peux me modifier mon code dans Jsp / servlet de telle façon à satisfaire mon besoin.


Je vous remercie beaucoup.