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

Paso de datos por medio de un ciclo a un text box

Estas en el tema de Paso de datos por medio de un ciclo a un text box en el foro de Java en Foros del Web. Hola!! Necesito pasar los valores de un ResultSet a un caja de texto, el problema es que los jalo de una base de datos de ...
  #1 (permalink)  
Antiguo 30/12/2005, 11:31
Avatar de Elen  
Fecha de Ingreso: diciembre-2005
Ubicación: México
Mensajes: 10
Antigüedad: 18 años, 4 meses
Puntos: 0
Pregunta Paso de datos por medio de un ciclo a un text box

Hola!!
Necesito pasar los valores de un ResultSet a un caja de texto, el problema es que los jalo de una base de datos de manera dinamica, esto es con un ciclo, hay alguna manera de indicar en la propiedad VALUE del input el ciclo? Estoy utilizando JSP
Gracias!!
  #2 (permalink)  
Antiguo 30/12/2005, 23:28
 
Fecha de Ingreso: agosto-2005
Mensajes: 72
Antigüedad: 18 años, 9 meses
Puntos: 1
asumo que ya haces los imports en el jsp y hayas creado la clase en java para realizar la consulta sql en este caso de persona
sql = "select * from tb_perosna where cod_persona='" + Codigo + "'";




-esto en el jsp
<%
String codigo = (String)request.getParameter("codigo");
BeanPersona objPersona=objPersonaDAO.obtenerPersona(codigo);
%>


<input type="text" name="nombre" size="20" value="<%=objPersona.getNom_persona()%>" ></td>


<input type="text" name="apellido" size="20" value="<%=objPersona.getApe_persona()%>" ></td>

espero te sirva.
Suerte
  #3 (permalink)  
Antiguo 02/01/2006, 09:57
Avatar de Elen  
Fecha de Ingreso: diciembre-2005
Ubicación: México
Mensajes: 10
Antigüedad: 18 años, 4 meses
Puntos: 0
Pregunta

Gracias por tu ayuda, es muy buena, cuendo conoces los campos que integran la tabla, pero en este caso no es así, la tabla es seleccionada de una lista dinámica, el campo también entonces no es posible definir el nombre de los campos, el codigo es:

<%
String tabla = request.getParameter("table");
String campo = request.getParameter("campo");
ResultSet rsDatos=consultas.verCamposTipoDato(tabla);
ResultSet rs=consultas.verCampos(campo);
int count=0;
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title> VER DATOS DEL REGISTRO A MODIFICAR</title>
</head>
<body>
<br>
<FORM ACTION="datosModificados.jsp" method="post">
<TABLE>
<TR>
<%while (rsDatos.next()) {%>
<td><%=rsDatos.getString(1)%> </td>
<td>
<input type="TEXT" name="i" value= " " id="i"><%%></td>
</tr>
<%}%>
</TABLE>
<br>
<INPUT TYPE=SUBMIT VALUE="ACEPTAR">
<INPUT TYPE=RESET VALUE="CANCELAR">

</FORM>
</body>
</html>

Ojala puedan ayudarme, es necesario que muestre los datos de la tabla sin importar cuantos campos tenga, recorrerla con un ciclo, pero como lo indico en el VALUE del TEXTBOX?
  #4 (permalink)  
Antiguo 03/01/2006, 02:48
 
Fecha de Ingreso: mayo-2004
Mensajes: 75
Antigüedad: 20 años
Puntos: 2
<%while (rsDatos.next()) {
String valor = rsDatos.getString(1);
%>
<td><%=valor%> </td>
<td>
<input type="TEXT" name="i" value= "<%=valor%>" id="i"></td>
</tr>
<%}%>

Pero asi todos los inputs se llamaran i, si quieres que i sea un contador de 1 a n siendo n el numero de filas del resultSet:
<%
int i=0;
while (rsDatos.next()) {
i++;
String valor = rsDatos.getString(1);
%>
<td><%=valor%></td>
<td>
<input type="TEXT" name="<%=i%>" value= "<%=valor%>"
id="<%=i%>"></td>
</tr>
<%}%>

Pero lo ideal no seria recorrer el resultSet en la JSP, sino que consultas.verCamposTipoDato y verCampos devolviera una Collection de Strings (Array o lo que prefieras usar), por aquello de separar BD y presentación.
  #5 (permalink)  
Antiguo 03/01/2006, 03:13
 
Fecha de Ingreso: diciembre-2005
Ubicación: Madrid, España
Mensajes: 154
Antigüedad: 18 años, 4 meses
Puntos: 2
Sonia,

Yo he tenido este mismo problema y lo que hago es:

1) Registro BD -> Value Bean que representa la tabla o vista.

2) Colección de value Beans de la tabla -> Value Bean con vector de Beans genérico

3) Bean con colección genérica -> servlet

4) Servlet -> JSP


Me funciona, pero... ¿es correcto el planteamiento? Vengo del mundo de PHP y esto es algo más sofisticado de lo que estoy acostumbrado...

Gracias
  #6 (permalink)  
Antiguo 03/01/2006, 09:09
 
Fecha de Ingreso: mayo-2004
Mensajes: 75
Antigüedad: 20 años
Puntos: 2
Yo no diria sofisticado, más bien ordenado (o desordenado segun un compañero mio) cada cosa a su sitio y lo menos mezclado posible.

Todo depende del tipo de aplicación que tengas, su tamaño, el plazo de entrega y lo independiente de cambios que quieras hacer las cosas ... a mi lo que me gusta usar normalmente es tener la aplicacion separada en 3 capas para que asi cambios en una parte no me impliquen tener que cambiar cosas por toda la aplicacion.

Para aplicaciones sencillitas y que no preveo que vayan a ser muy modificadas una vez terminadas.

1) BD: Registro BD -> Value Bean que representa los datos de ese registro o una collection de esos Value Bean si recupera varios

2) Logica de negocio -> Servlets + Value Bean o collection con los Value Bean

3) Servlet -> JSP. En la JSP solamente hago tratamientos de presentacion, las validaciones de si los datos estan bien etc las hago en la logica de negocio. Solamente accedo a metodos get/set de los value bean.

Si ya es algo mas complicado con EJBs tipo CMP o asi lo que hago es en la capa 2 (logica de negocio) convierto los Value Bean a otro tipo de bean que usare para validaciones y presentaciones, de forma que los value bean que cojo en BD nunca llegan hasta la presentacion.

Pero ya te digo que esto es como me gusta a mi, eso no significa que mi forma sea la única y mucho menos la mejor, simplemente es con la que yo mejor me muevo.
  #7 (permalink)  
Antiguo 03/01/2006, 11:20
Avatar de Elen  
Fecha de Ingreso: diciembre-2005
Ubicación: México
Mensajes: 10
Antigüedad: 18 años, 4 meses
Puntos: 0
De acuerdo

Mil gracias por tu ayuda Sonia, me sirvio bastante.
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 05:05.