Bonjour !
J'ai une liste de champ numéroté de 1 à 6 (voir plus plus tard) et je n'ai pas de noms spécifiques pour ces champs.
Un exemple parle plus :
j'ai un formulaire de ce style :
code champ1; site de prélèvement champ 1
code champ2; site de prélèvement champ 2
[...]
code champ n; site de prélèvement champ n
dans ma servlet, je dois donc récupérer ces champs :
je me suis essayée à une astuce : créer une listre de String correspondant au value des champs:
Peut-on faire un parsing de ce style :
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 public class ServletFichePrlvLEG extends HttpServlet{ private String [] indice={"champ1","champ2","champ3","champ4","champ5","champ6"}; void doInit(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // on récupère la session de l'utilisateur HttpSession session = request.getSession(true); // on envoie le formulaire vide session.setAttribute("nomEtablissement", ""); session.setAttribute("nomPreleveur",""); session.setAttribute("datePrelev",""); session.setAttribute("numFinFiche",""); for (int i=0; i<6; i++){ String champs=indice[i]; session.setAttribute("champs",""); } request.setAttribute("urlAction", (String) params.get("urlControleur")); getServletContext().getRequestDispatcher((String) params.get("urlFormulaire")).forward( request, response); return; } void doValidationFormulaire(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException, SQLException, Exception { // on récupère les paramètres String nomEtablissement = (String) request.getParameter("nomEtablissement"); String nomPreleveur=(String)request.getParameter("nomPreleveur"); String datePrelev=(String)request.getParameter("datePrelev"); String numFinFiche=(String)request.getParameter("numFinFiche"); HttpSession session = request.getSession(true); for (int i=0; i<6; i++){ String champs=indice[i]; champs=(String)request.getParameter("champs"); session.setAttribute("champs",champs); } //puis on le stocke dans la session session.setAttribute("nomEtablissement", nomEtablissement); session.setAttribute("nomPreleveur",nomPreleveur); session.setAttribute("datePrelev",datePrelev); session.setAttribute("numFinFiche",numFinFiche); request.setAttribute("urlAction", (String) params.get("urlControleur")); getServletContext().getRequestDispatcher((String) params.get("urlReponse")).forward( request, response); } }
grâce à la création d'une liste de string?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 for (int i=0; i<6; i++){ String champs=indice[i]; session.setAttribute("champs",""); } ou encore : HttpSession session = request.getSession(true); for (int i=0; i<6; i++){ String champs=indice[i]; champs=(String)request.getParameter("champs"); session.setAttribute("champs",champs); }
Voici comment ca se présente dans ma page formulaire:
Ceci marche parce que j'ai bien dans les input les noms de la liste indice qui apparaissent .
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 <% // on récupère les paramètres String nomEtablissement=(String)session.getAttribute("nomEtablissement"); String nomPreleveur=(String)session.getAttribute("nomPreleveur"); String datePrelev=(String)session.getAttribute("datePrelev"); String numFinFiche=(String)session.getAttribute("numFinFiche"); String [] indice={"champ1","champ2","champ3","champ4","champ5","champ6"}; for (int i=0; i<6; i++){ String champ=indice[i]; champ=(String)session.getAttribute("champ"); } String urlAction=(String)request.getAttribute("urlAction"); %> [...] <% for (int i=0; i<6; i++){ out.println("<tr>"); out.println("<td>"+(i+1)+"</td>");%> <td><input name="indice[i]" value="<%= indice[i]%>" type="text" size="8"></td> <%out.println("</tr>"); } %>
Enfin ma page réponse :
Auriez vous une idée de comment ca se passe dans cette situation : ce que j'aurai pu faire c'est :
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 <% // on récupère les paramètres dans la session String[] indice={"champ1","champ2","champ3","champ4","champ5","champ6"}; String urlAction=(String)request.getAttribute("urlAction"); %> <html> <head> <title>Fiche répitulative - formulaire</title> </head> <body> <%for (int i=0; i<6; i++){ String champ=indice[i]; champ=(String)session.getAttribute(champ); %> Champs remplis indice[i]: <%= champ%><br> <%} %> </body> </html>
Mais je ne trouve pas ca du tout propre (surtout quand N est gand).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 session.setAttribute("champ1",""); session.setAttribute("champ2",""); [...] session.setAttribute("champN","");
Donc pour résumer, j'aimerai bien reformuler ma situation en une phrase mais je n'arrive pas à matérialiser cette phrase !
Je m'y essais: comment récuperer des champs qui n'ont comme variation dans leurs noms qu'un chiffre (qui lui s'incrémente au fur et à mesure )?
Merci de votre attention et de vos idées
Fripette
Partager