Foros del Web » Programación para mayores de 30 ;) » Java »

Retener Datos en un formulario para volver a enviarlos

Estas en el tema de Retener Datos en un formulario para volver a enviarlos en el foro de Java en Foros del Web. Hola, me llamo Alfredo y soy un poco nuevo en Struts. He buscado en el foro pero no he encontrado la solucion a mi problema. ...
  #1 (permalink)  
Antiguo 11/12/2008, 08:01
 
Fecha de Ingreso: diciembre-2008
Mensajes: 4
Antigüedad: 16 años
Puntos: 0
Mensaje Retener Datos en un formulario para volver a enviarlos

Hola, me llamo Alfredo y soy un poco nuevo en Struts.
He buscado en el foro pero no he encontrado la solucion a mi problema.

Mi problema es el siguiente:

Tengo una pagina jsp que muestra los datos de los participantes que tengo en la base de datos. El codigo es el siguiente:

Código:
<H3>Participantes Apuntados al club</H3>
	<html:form action="editarParticipante" method="post">
	<TABLE border="2">
		<tr> 
			<TH>Nombre</TH>
			<TH>IDParticipante</TH>
		</tr>
			
	<logic:notEmpty name="participantes">
		<logic:iterate id="listaParticipantes" name="participantes">
			<TR>
				<td><bean:write name="listaParticipantes"          property="nombre"/></td>
				<td><html:text name="listaParticipantes" property="idParticipante"></html:text>
				<html:submit value="Editar" ></html:submit>
				</td>
				
			</TR>
		</logic:iterate>
	</logic:notEmpty>	
	</TABLE>
	
	</html:form>

Esta pagina me muestra bien los datos, pero mi objetivo es que cuando el usuario pulse editar, el formulario recoja el idParticipante del "editar" que halla pulsado.

Por ejemplo, si el resultado de esta jsp fuera:

Nombre .............IdPArticipante

Alfredo..................C1.............. Editar
Manolo..................C2.............. Editar
Paco......................C3.............. Editar3

Objetivo: Cuando pulse "Editar3", en el ActionForm form el idParticipante=C3

Con el codigo anterior de la jsp, cualquier "Editar que pulse" guarda en el formulario el idParticipante=C1. ¡He aqui el problema!.

Perdon por el tocho, pero es que no sé explicarme mejor.
Muchas gracias de antemano.

Última edición por alfredoguadalinfo; 11/12/2008 a las 08:03 Razón: los espacios no se respetan
  #2 (permalink)  
Antiguo 11/12/2008, 09:01
 
Fecha de Ingreso: agosto-2008
Mensajes: 57
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: Retener Datos en un formulario para volver a enviarlos

Hola yo tb tuve que hacer algo parecido y con esto le di solucion:

Código:
<td> <html:link action="/editarUsuario" paramName="usuario"
 paramProperty="codUsuario" paramId="codUsuario">Edit</html:link> </td>
Espero que te sirva, si no comentame y dentro de lo que se te intentare ayudar...
  #3 (permalink)  
Antiguo 12/12/2008, 04:56
 
Fecha de Ingreso: diciembre-2008
Mensajes: 4
Antigüedad: 16 años
Puntos: 0
Respuesta: Retener Datos en un formulario para volver a enviarlos

Gracias, Gracias, Gracias.
Va Fenomenon!! Muchisimas Gracias.

Así da gusto pedir ayuda por un foro. Con gente como tu todo es más fácil.

1 Abrazo.
  #4 (permalink)  
Antiguo 12/12/2008, 05:44
 
Fecha de Ingreso: diciembre-2008
Mensajes: 4
Antigüedad: 16 años
Puntos: 0
Respuesta: Retener Datos en un formulario para volver a enviarlos

Perdona una ultima pregunta.
Con esta solución, ¿ los datos que se escriban en los <html:text> se enviaran al actionForm form.?

Ejemplo:

idParticipante...........Kilos(Introduzca los kilos)

...........C1...............................26.... .........................Editar
...........C2...............................56.... .........................Editar

Objetivo: Hacer llegar al actionForm el idParticipante=C2 y los kilos=56
Nota: los datos de la columna idParticipante se escriben con un <bean:write> y la de Kilos es un <html:text>


sino, como se podria hacer.

Gracias.

Última edición por alfredoguadalinfo; 12/12/2008 a las 06:48
  #5 (permalink)  
Antiguo 12/12/2008, 07:43
 
Fecha de Ingreso: diciembre-2008
Mensajes: 4
Antigüedad: 16 años
Puntos: 0
Respuesta: Retener Datos en un formulario para volver a enviarlos

Eureka!!
Una solucion es: combinar el <html:text> con los parametros de <bean:write name=" " property="" >, es decir:
<html:text name=" " property=" ">
Os dejo el codigo para que lo veais. Aunque me encuentro ante una nueva tesitura con esta solucion.

Código:
<td><html:text name="listaParticipantes" property="idParticipante"></html:text></td>
				<td><bean:write name="listaParticipantes" property="nombre"/></td>
				<td><html:text property="kilos"></html:text></td>
				<td><html:text property="piezas"></html:text></td>
				<td><html:text property="piezaMayor"></html:text></td>
				<td><html:submit value="Guardar"> </html:submit></td>

El problema es que ahora el campo idParticipante es un campo de texto, con lo cual ¡se puede modificar!, que horror, el usuario no puede tener acceso a este tipo de modificaciones.
La solucion a este 2º problema se me ocurre mientras escribo este mensaje:

ocultar el html:text que muestra el idParticipante y mostrar el idParticipante mediante un bean:write.
El codigo quedaria así:

Código:
<logic:notEmpty name="concurso" property="participantes">
		<logic:iterate id="listaParticipantes" name="concurso" property="participantes">
			<html:form action="guardarResultadoConcurso" method="post">
			<TR>
				<html:hidden name="listaParticipantes" property="idParticipante"/>
				<td><bean:write name="listaParticipantes" property="idParticipante"/></td>
				<td><bean:write name="listaParticipantes" property="nombre"/></td>
				<td><html:text property="kilos"></html:text></td>
				<td><html:text property="piezas"></html:text></td>
				<td><html:text property="piezaMayor"></html:text></td>
				<td><html:submit value="Guardar"> </html:submit></td>				
			</TR>
			</html:form>
		</logic:iterate>
	</logic:notEmpty>	
	</TABLE>

Espero que sirva de ayuda.

Gracias
  #6 (permalink)  
Antiguo 12/12/2008, 14:28
 
Fecha de Ingreso: agosto-2008
Mensajes: 57
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: Retener Datos en un formulario para volver a enviarlos

perdona que no he entrado mucho ultimamente.

Lo que necesitas es utilizar el html:hidden ahi metes en name el nombre del formulario y en property la propiedad que necesitas pasar. Así en el action la podras recuperar.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:40.