Espyos
06-06-2012, 22:00
Salve a tutti riscontro un problema con le pagine jsp (maledette!).
La mia situazione iniziale è questa, ho una tabella con una serie di utenti registrati a un sistema di cui visualizzo correttamente tutti i dati tra cui nome, cognome ecc. Ora l'amministratore che visualizza tale tabella deve essere in grado di poter modificare ogni singolo utente, tramite un tasto modifica accanto ad ogni utente. Al clic del tasto si va in un altra pagina con cui attraverso un form si vanno a modificare la varie voci del database di un singolo utente. Vi mostro il codice così da chiarirvi la situazione :
Questa è la pagina jsp con la tabella :
...]
<%ArrayList<Studente> listaStudenti=Business.getInstance().getStudenti();
for (int i = 0; i <listaStudenti.size(); i++) { %>
<tr>
<td>
<center>
<% out.println(listaStudenti.get(i).getNome());%>
</center>
</td>
[...]
<td>
<center>
<form action="mod_utente.jsp" method="post">
<input type="submit" name="invia_mod<%= listaStudenti.get(i).getUsername()%>" value="Modifica" />
<input type ="hidden" name= "utente" value="<%= listaStudenti.get(i).getUsername()%>"/>
</form>
</center>
</td>
[...]
<% } %>
</td>
</tr>
</table>
Il metodo getStudenti si assicura di prendere i dati del singolo utenti.. l'ultima cella (ho scritto solo quella importante) dovrebbe prendere l'username dell'utente e inviarlo all'altra pagina jsp di seguito :
<p>Nome :</br> <input type="text" name="fname" /><br/>
Cognome :</br> <input type="text" name="lname" /></br>
Email :</br> <input type="text" name="email" /></br>
Matricola :</br> <input type="text" name="matricola" /></br>
Telefono:</br> <input type="text" name="tel" /></br>
<input type="submit" name="Invia" value="Invia" />
</p>
<%
if (request.getParameter("Invia")!=null){
String username = request.getParameter("utente");
String nome = request.getParameter("fname");
String cognome = request.getParameter("lname");
String mail = request.getParameter("email");
String matricola= request.getParameter("matricola");
String telefono = request.getParameter("tel");
if (request.getParameter("fname") !=""){
Business.getInstance().updateNome(username, nome);
out.println("<font color='green'>Il tuo nome è stato modificato.</font>");
}
[...]
in cui ho inserito il metodo che si fa carico di modificare la voce del database relativa al nome... è inutile che vi posto i metodi perchè gli ho testati e sono funzionanti, il problema è quello di trasmettere la username di un utente in posizione i dell'arraylist all'altra pagina jsp...
Se vi mancano informazioni affinchè possiate aiutarmi ditelo
Grazie
La mia situazione iniziale è questa, ho una tabella con una serie di utenti registrati a un sistema di cui visualizzo correttamente tutti i dati tra cui nome, cognome ecc. Ora l'amministratore che visualizza tale tabella deve essere in grado di poter modificare ogni singolo utente, tramite un tasto modifica accanto ad ogni utente. Al clic del tasto si va in un altra pagina con cui attraverso un form si vanno a modificare la varie voci del database di un singolo utente. Vi mostro il codice così da chiarirvi la situazione :
Questa è la pagina jsp con la tabella :
...]
<%ArrayList<Studente> listaStudenti=Business.getInstance().getStudenti();
for (int i = 0; i <listaStudenti.size(); i++) { %>
<tr>
<td>
<center>
<% out.println(listaStudenti.get(i).getNome());%>
</center>
</td>
[...]
<td>
<center>
<form action="mod_utente.jsp" method="post">
<input type="submit" name="invia_mod<%= listaStudenti.get(i).getUsername()%>" value="Modifica" />
<input type ="hidden" name= "utente" value="<%= listaStudenti.get(i).getUsername()%>"/>
</form>
</center>
</td>
[...]
<% } %>
</td>
</tr>
</table>
Il metodo getStudenti si assicura di prendere i dati del singolo utenti.. l'ultima cella (ho scritto solo quella importante) dovrebbe prendere l'username dell'utente e inviarlo all'altra pagina jsp di seguito :
<p>Nome :</br> <input type="text" name="fname" /><br/>
Cognome :</br> <input type="text" name="lname" /></br>
Email :</br> <input type="text" name="email" /></br>
Matricola :</br> <input type="text" name="matricola" /></br>
Telefono:</br> <input type="text" name="tel" /></br>
<input type="submit" name="Invia" value="Invia" />
</p>
<%
if (request.getParameter("Invia")!=null){
String username = request.getParameter("utente");
String nome = request.getParameter("fname");
String cognome = request.getParameter("lname");
String mail = request.getParameter("email");
String matricola= request.getParameter("matricola");
String telefono = request.getParameter("tel");
if (request.getParameter("fname") !=""){
Business.getInstance().updateNome(username, nome);
out.println("<font color='green'>Il tuo nome è stato modificato.</font>");
}
[...]
in cui ho inserito il metodo che si fa carico di modificare la voce del database relativa al nome... è inutile che vi posto i metodi perchè gli ho testati e sono funzionanti, il problema è quello di trasmettere la username di un utente in posizione i dell'arraylist all'altra pagina jsp...
Se vi mancano informazioni affinchè possiate aiutarmi ditelo
Grazie