Ver Mensaje Individual
  #10 (permalink)  
Antiguo 31/08/2007, 20:35
Avatar de Payin
Payin
 
Fecha de Ingreso: mayo-2007
Mensajes: 92
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: Modificar, Eliminar datos de formulario a BD

esta bien, ahi entendí lo que me querías decir. Si, lo estaba haciendo (sin struts) de una forma arecida a lo que me decís vos. Solo que dentro del servlet voy pasando por todos los parametros del request busando los que tienen IDX en ON. Estos son lso códigos que me andan, pero que quiero pasar a struts (hasta ahora ha sido un dolor de cabezas y errores por todos lados).
Estos son los codigos:

DE LA JSP

<html>
<head>
<title>Lista de Personas</title>
</head>
<form name="envio" method="post">
<table cellpadding=2 cellspacing=2 border=1 width=100%>
<tr>
<td width=20%><b>Nombre</b></td>
<td width=20%><b>Apellido</b></td>
<td width=35%><b>Email</b></td>
<td width=25%><b>Telefono</b></td>
<td><b>Elimina</b></td>
<td><b>Modifica</b></td>
</tr>
<%
Persona p = new Persona();
List lista = ListaPersonas.listaPersonas();
for (int i = 0; i < lista.size(); i++) {
p = (Persona) lista.get(i);
%>
<tr>
<td width=20%><%=p.getNombre()%></td>
<td width=20%><%=p.getApellido()%></td>
<td width=35%><%=p.getEmail()%></td>
<td width=25%><%=p.getTelefono()%></td>
<td align="center">
<input type="checkbox" name="eliminar<% i %>"/>
<input type="hiden" name="valor<% i %>" value="<% p.getID %>"/>
</td>
</tr>
<%
}
%>
<tr><p></p></tr><tr>
<td colspan=6 align="center">
<input type="submit"
value="Continuar""/>
<input type="hiden" name="cantidad" value="<% i %>" />
</td>
</tr>
</table>
</form>
</body>
</html>

DEL SERVLET


protected void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
int cant = Integer.parseInt(request.getParameter("cantidad")) ;
Session sesion = FactorySingleton.getInstance().openSession();
Transaction tx = sesion.beginTransaction();
for (int i = 0; i < cant; i++) {
if (request.getParameter("eliminar" + i) != null) {
Persona p = (Persona) sesion.load(Persona.class, Integer
.parseInt(request.getParameter("id" + i)));
sesion.delete(p);
}
}
tx.commit();
sesion.close();
}

La variable CANT la utilizo para saber cuantos elementos paso. No sé si hay otra forma un poco mas óptima.

saludos!