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:
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);
	}
}
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
 
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);
	           }
grâce à la création d'une liste de string?

Voici comment ca se présente dans ma page formulaire:
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>");
           }
          %>
Ceci marche parce que j'ai bien dans les input les noms de la liste indice qui apparaissent .

Enfin ma page réponse :
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&eacute;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>
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
 
session.setAttribute("champ1","");
session.setAttribute("champ2","");
[...]
session.setAttribute("champN","");
Mais je ne trouve pas ca du tout propre (surtout quand N est gand).
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