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

No puedo almacenar valor de "Text" en JSP

Estas en el tema de No puedo almacenar valor de "Text" en JSP en el foro de Java en Foros del Web. Tengo este código en mi página.jsp: String sql0 = "SELECT... bla bla bla"; ResultSet resultado1 = comando.executeQuery(sql0); while(resultado1.next()) { out.println("<tr>"); out.println("<td> <input type=\"text\" name=\"nombre\" value=\" ...
  #1 (permalink)  
Antiguo 14/09/2009, 08:25
ssh
 
Fecha de Ingreso: agosto-2009
Mensajes: 85
Antigüedad: 14 años, 8 meses
Puntos: 0
No puedo almacenar valor de "Text" en JSP

Tengo este código en mi página.jsp:


String sql0 = "SELECT... bla bla bla";
ResultSet resultado1 = comando.executeQuery(sql0);
while(resultado1.next()) {
out.println("<tr>");
out.println("<td> <input type=\"text\" name=\"nombre\" value=\" "+resultado1.getInt("nombre1")+"\" align=\"center\" size=\"5\" />"+"</td>");
out.println("<td>"+resultado1.getString("nombre2") +"</td>");
out.println("<td>"+resultado1.getString("nombre3") +"</td>");
out.println("<td>"+resultado1.getString("nombre4") +"</td>");
out.println("<td><input type=\"submit\" value=\"Ver Detalles\" /></td>");
out.println("</tr>");
}


Lo que hace esto es poner una caja de texto con cada valor de "nombre1" que encuentra en la base de datos, listando los siguientes nombres 2,3 y 4 asociados al nombre1, quiero enviar el "nombre1" a otra página llamada "detalle.jsp" pasando la variable "nombre1" por session, y me resulta, pero sólo una vez con el primer valor que toma desde la BD en el while, aunque me rescata correctamente todos los valores de "nombre1" y los muestro correctamente, no puedo enviar desde el 2do resultado de "nombre1" en adelante por session a detalle.jsp, se queda pegado en la memoria (o no se en q parte) el valor del primer registro que rescato desde la BD, detalle solo muestra ese registro... se entiende?

Qué estoy haciendo mal? Alguna otra forma de hacerlo (sin cambiar tanto la estructura)? Será porq la variable en la BD es int y la rescato como un Text? como lo soluciono? Ayuda por favor...

Saludos.

Última edición por ssh; 14/09/2009 a las 08:44
  #2 (permalink)  
Antiguo 14/09/2009, 09:20
ssh
 
Fecha de Ingreso: agosto-2009
Mensajes: 85
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: No puedo almacenar valor de "Text" en JSP

Lo que en realidad necesito es que al apretar submit envíe el valor de nombre1 a detalle.jsp. El problema es que junto a cada registro que encuentra en la BD, coloco un submit, y el valor puede quedar con el primer o último valor de nombre1.

Entonces la duda es, cómo hacer para que al apretar submit me rescate el valor de nombre1 en la fila que está? es decir si me aparecen 5 registros y los lista, y yo apreto submit en el tercero, me envíe el "nombre1" de ese tercer registro a detalle.jsp???
  #3 (permalink)  
Antiguo 14/09/2009, 09:38
 
Fecha de Ingreso: febrero-2009
Mensajes: 55
Antigüedad: 15 años, 2 meses
Puntos: 1
Respuesta: No puedo almacenar valor de "Text" en JSP

Sería útil el ver como es que asignas el valor de "nombre1" a la sesión, sin saber como haces eso puedes probar con esta variante de tú código:

String sql0 = "SELECT... bla bla bla";
ResultSet resultado1 = comando.executeQuery(sql0);
int i=0;
while(resultado1.next()) {
out.println("<tr>");
out.println("<td> <input type=\"text\" name=\"nombre"+i+"\" value=\" "+resultado1.getInt("nombre1")+"\" align=\"center\" size=\"5\" />"+"</td>");
out.println("<td>"+resultado1.getString("nombre2") +"</td>");
out.println("<td>"+resultado1.getString("nombre3") +"</td>");
out.println("<td>"+resultado1.getString("nombre4") +"</td>");
out.println("<td><input type=\"submit\" value=\"Ver Detalles\" /></td>");
out.println("</tr>");
i++;
}
Cuando le asignes a la sesion el valor del textbox asegurate que sea el textbox correcto (nombreX)

Saludos.

Última edición por RAVA; 14/09/2009 a las 09:41 Razón: Se agrego la variable "i"
  #4 (permalink)  
Antiguo 14/09/2009, 10:04
ssh
 
Fecha de Ingreso: agosto-2009
Mensajes: 85
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: No puedo almacenar valor de "Text" en JSP

El problema es que submit toma el último valor de "nombre i", entonces dónde y cómo especifico que "i" es? el submit sólo envía, sin discriminar cual Text es...

en detalle.jsp llamo a la variable así:

out.println("session.getAttribute("nombre1") + "<br/>");

Como implemento esto con el iterador "i"????
  #5 (permalink)  
Antiguo 14/09/2009, 12:38
 
Fecha de Ingreso: febrero-2009
Mensajes: 55
Antigüedad: 15 años, 2 meses
Puntos: 1
Respuesta: No puedo almacenar valor de "Text" en JSP

Me parece demasiada ladilla estar pensando como hacer eso a la sesión. Una opción es cambiar el "submit" por un botón, y que cuando le de click asigne a una variable oculta el valor correspondiente para que después se vaya al servlet. Creo que de esta manera va bien.

out.println("<input type=\"button\" onclick=\"enviar(\"" + resultado1.getInt("nombre1") + "\")\"value=\"Ver Detalles\" />");

En enviar:
function enviar(valor)
{
tuforma.detallesDe.value=valor;
tuforma.submit();
}

Obviamente en tu forma (tu jsp) tienes que crear una variable oculta llamada "detallesDe" (o como tu prefieras).

Saludos.
  #6 (permalink)  
Antiguo 14/09/2009, 15:32
ssh
 
Fecha de Ingreso: agosto-2009
Mensajes: 85
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: No puedo almacenar valor de "Text" en JSP

Cita:
Iniciado por RAVA Ver Mensaje
En enviar:
function enviar(valor)
{
tuforma.detallesDe.value=valor;
tuforma.submit();
}

Obviamente en tu forma (tu jsp) tienes que crear una variable oculta llamada "detallesDe" (o como tu prefieras).

Saludos.
No entiendo lo de "tuforma" mi jsp se llama "totales.jsp" y el otro "detalles.jsp"
Entendí perfecto lo del botón, pero a que te refieres con lo de "tuforma"?
  #7 (permalink)  
Antiguo 14/09/2009, 15:54
 
Fecha de Ingreso: febrero-2009
Mensajes: 55
Antigüedad: 15 años, 2 meses
Puntos: 1
Respuesta: No puedo almacenar valor de "Text" en JSP

Utilizas las etiquedas <form> dentro del jsp?

Código PHP:
<form name="tuforma">
<
table>
<
tr>
<
td> <input type="text" name="nombre" value="algo" align="center" size="5" /></td>
<
td>resultado1.getString("nombre2") </td>
<
td>resultado1.getString("nombre3") </td>
<
td>resultado1.getString("nombre4") </td>
<
td><input type="submit" value="Ver Detalles" /></td>
</
tr>
</
table>
</
form
Saludos.
  #8 (permalink)  
Antiguo 15/09/2009, 15:36
ssh
 
Fecha de Ingreso: agosto-2009
Mensajes: 85
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: No puedo almacenar valor de "Text" en JSP

qué tipo de dato es "detallesDe"?? y dónde lo creo, dentro del form?

ah, y sí, el form lo trabajo dentro del JSP.
  #9 (permalink)  
Antiguo 15/09/2009, 16:39
 
Fecha de Ingreso: febrero-2009
Mensajes: 55
Antigüedad: 15 años, 2 meses
Puntos: 1
Respuesta: No puedo almacenar valor de "Text" en JSP

Es de tipo "hidden" (oculta ) La creas dentro del form con el nombre que tú gustes ("detallesDe" fue solo un ejemplo). No olvides utilizar las etiquetas <input...

Cabe mencionar que en el servlet obtendras el valor de esta variable de la misma forma que obtienes el valor de un tipo "text" (textbox )

Saludos.
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 11:24.