Ci sono gli array apposta per questo:
E' solo questione di sistemare il form con cui prendi i dati: per esempio
codice:
<form name="singolo" action="tuaaction.jsp" method="post">
Nome: <input type="text" name="nome" /> Cognome: <input type="text" name="cognome" />
<input type="submit" value="submit" name="submit" />
</form>
Crea un form con una sola coppia Nome/Cognome. Se però nominiamo i campi in questo modo (come fossero array)
codice:
<form name="singolo" action="tuaaction.jsp" method="post">
Nome: <input type="text" name="nome[]" /> Cognome: <input type="text" name="cognome[]" />
Nome: <input type="text" name="nome[]" /> Cognome: <input type="text" name="cognome[]" />
Nome: <input type="text" name="nome[]" /> Cognome: <input type="text" name="cognome[]" />
Nome: <input type="text" name="nome[]" /> Cognome: <input type="text" name="cognome[]" />
Nome: <input type="text" name="nome[]" /> Cognome: <input type="text" name="cognome[]" />
Nome: <input type="text" name="nome[]" /> Cognome: <input type="text" name="cognome[]" />
Nome: <input type="text" name="nome[]" /> Cognome: <input type="text" name="cognome[]" />
...
...
<input type="submit" value="submit" name="submit" />
</form>
Avremo un form con N coppie di campi, ai quali accediamo con getParameterValues, il quale ci restituirà un array dei valori o null se i campi non sono stati compilati.
Esempio completo
codice:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page - MultiField</title>
</head>
<body>
<h2>Multifield Form</h2>
<form name="mioform" action="multifield.jsp" method="post">
Nome: <input type="text" name="nome[]" /> Cognome: <input type="text" name="cognome[]" />
Nome: <input type="text" name="nome[]" /> Cognome: <input type="text" name="cognome[]" />
Nome: <input type="text" name="nome[]" /> Cognome: <input type="text" name="cognome[]" />
Nome: <input type="text" name="nome[]" /> Cognome: <input type="text" name="cognome[]" />
<input type="submit" value="Submit" name="submit" />
</form>
<fieldset>
<legend>Valori postati</legend>
<%
try {
String[] nomi = request.getParameterValues("nome[]");
String[] cognomi = request.getParameterValues("cognome[]");
for (int i = 0; i < nomi.length; i++) {
out.println("Nome: "+nomi[i]+" Cognome: "+cognomi[i]+"
");
}
}
catch (Exception e) {
out.println("Nessun dato valido");
}
%>
</fieldset>
</body>
</html>
PS: non è un buon modo di gestire gli eventuali null/null ritornati, ma è solo per farti vedere l'utilizzo di getParameterValues. In una vera applicazione dovrai ben gestire tutte le eccezioni di compilazione di un form