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

Problema al pasar dato de variable html a javabean

Estas en el tema de Problema al pasar dato de variable html a javabean en el foro de Java en Foros del Web. Saludos. Bueno, el problema que tengo es el siguiente: Tengo dos archivos jsp, uno es un formulario llamado Index donde ingreso el Numero de control ...
  #1 (permalink)  
Antiguo 19/02/2008, 14:33
 
Fecha de Ingreso: febrero-2008
Mensajes: 33
Antigüedad: 16 años, 2 meses
Puntos: 0
Problema al pasar dato de variable html a javabean

Saludos.

Bueno, el problema que tengo es el siguiente:
Tengo dos archivos jsp, uno es un formulario llamado Index donde ingreso el Numero de control y el password del usuario, estos datos los compruebo con una Base de datos Mysql, haciendo la comparacion entre el dato obtenido del campo de texto donde pide el Numero de control del usuario contra un Numero de control manualmente establecido desde la Base de datos.

Si el usuario es confirmado se pasa al otro formulario llamado Registro donde pide al usuario llenar otros campos de texto de informacion como su nombre, apellidos, etc. Los valores de los campos de texto de los dos formularios los paso a un javabean llamado DatosUsuario (getters y setters).

Y aqui es donde empieza el problema, quiero enviar los datos de este ultimo formulario(Registro), con una instruccion SQL donde la condicion del WHERE sea el Numero de control establecido en el formulario Index (obviamente con la instruccion Update ya que previamente introduci el Numero de control desde la BD). La instruccion SQL esta en un javabean llamado InsertaRegistro.
Por ejemplo: si en el formulario Index el usuario puso como Numero de control: Maria, utilizar ese nombre en la condicion WHERE de mi instruccion SQL.
instruccion.executeUpdate("UPDATE usuario SET nombre='" + registro.getNombre() + "', apaterno='" + registro.getApaterno() + "', " +
" amaterno='" + registro.getAmaterno() + "', carrera='" + registro.getCarrera() + "', semestre='" + registro.getSemestre() + "' WHERE no_control='maria' "); pero claro con la variable adecuada, que es la que no se establecer.
Les dejo mi codigo para que me hagan saber si tienen una idea de lo que me falta en el programa para que funcione.
Gracias.

index.jsp

<%@ page contentType="text/html; charset=iso-8859-1" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<%@page errorPage="PaginaError.jsp" %>

<jsp:useBean id="usuario" scope="request"
class="beans.DatosUsuario" />
<jsp:useBean id="valida" scope="request"
class="beans.ValidaUsuario" />

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin t&iacute;tulo</title>
</head>
<body>
<%-- La variable usuario se utiliza para establecer los valores
del formulario (no_control,clave) a la clase DatosUsuario --%>

<jsp:setProperty name="usuario" property="*" />
<%
if (usuario.getNo_control()==null ||
usuario.getClave()==null) {
%>

<form id="form1" name="form1" method="post" action="index">

<label>USUARIO
<input type="text" name="no_control" tabindex="1" />
</label>
<p>
<label>CONTRASEÑA
<input type="password" name="clave" tabindex="2" />
</label>
</p>
<p>
<label>
<input type="submit" name="Submit" value="Entrar" tabindex="3" />
</label>
</p>
</form>

<%-- El if manda el usuario y clave obtenidos del formulario al metodo confirmarUsuario de la clase ValidaUsuario --%>
<%
} else {
if (valida.confirmarUsuario(usuario.getNo_control(),u suario.getClave()))
{
%>
<jsp:forward page="registro.jsp" />
<%
}
else {
%>
<jsp:forward page="PaginaError.jsp" />
<%
}
}
%>


</body>
</html>

registro.jsp

<%@ page contentType="text/html; charset=iso-8859-1" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<%@page errorPage="PaginaError.jsp" %>

<jsp:useBean id="usuario" scope="request"
class="beans.DatosUsuario" />
<jsp:useBean id="registrar" scope="request"
class="beans.InsertaRegistro" />

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin t&iacute;tulo</title>
</head>
<body>

<jsp:setProperty name="usuario" property="*" />

<%
if (
usuario.getNombre()==null ||
usuario.getApaterno()==null ||
usuario.getAmaterno()==null) {
%>

<form id="form1" name="form2" method="post" action="registro">

<label>NOMBRE(s)
<input type="text" name="nombre" tabindex="1" />
</label>
<p>
<label>APELLIDO PATERNO
<input type="text" name="apaterno" tabindex="2" />
</label>
</p>
<p>
<label>APELLIDO MATERNO
<input type="text" name="amaterno" tabindex="3" />
</label>
</p>
<p>
<label>
<input type="submit" name="Submit" value="Enviar" tabindex="6" />
</label>
</p>
</form>

<%
}
else {
registrar.agregarRegistro(usuario);
}
%>

</body>
</html>

DatosUsuario.java

public class DatosUsuario {

private String no_control;
private String clave;
private String nombre;
private String apaterno;
private String amaterno;

public void setNo_control(String no_control){
this.no_control=no_control;
}
public String getNo_control(){
return no_control;
}
public void setClave(String password){
clave=password;
}
public String getClave(){
return clave;
}
public void setNombre(String nombre){
this.nombre=nombre;
}
public String getNombre(){
return nombre;
}
public void setApaterno(String apaterno){
this.apaterno=apaterno;
}
public String getApaterno(){
return apaterno;
}
public void setAmaterno(String amaterno){
this.amaterno=amaterno;
}
public String getAmaterno(){
return amaterno;
}

}

InsertaRegistro.java

import java.io.*;
import java.sql.*;
import java.util.*;

public class InsertaRegistro {

private Connection conexion;
private Statement instruccion;
private String control;
private ResultSet resultados;

public InsertaRegistro()throws Exception{
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/nombre_basedatos";
conexion=DriverManager.getConnection(url, "user", "password");
instruccion=conexion.createStatement();

}

/* En la condicion WHERE no_control=, es donde no se que variable establecer para que se cumpla mi condicion */

public void agregarRegistro(DatosUsuario registro)throws SQLException {

instruccion.executeUpdate("UPDATE usuario SET nombre='" + registro.getNombre() + "', apaterno='" + registro.getApaterno() + "', " +
" amaterno='" + registro.getAmaterno() + "' WHERE no_control= ");

}

protected void finalize() {
try {
instruccion.close();
conexion.close();
}
catch (SQLException exceptionSQL) {
exceptionSQL.printStackTrace();
}
}

}
  #2 (permalink)  
Antiguo 21/02/2008, 10:50
 
Fecha de Ingreso: febrero-2008
Mensajes: 33
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Problema al pasar dato de variable html a javabean

Encontre algo que me funcionó, nada mas cambie el scope de los archivos jsp del javabean DatosUsuario.
En un principio la declaracion en los archivos jsp del javabean DatosUsuario estaba asi:

<jsp:useBean id="usuario" scope="request"
class="beans.DatosUsuario" />

Modificando el scope, queda asi:

<jsp:useBean id="usuario" scope="application"
class="beans.DatosUsuario" />

Y la sentecia SQL se acompleta asi:

WHERE no_control='" + registro.getNo_control + "'

Me imagino que debe de haber otra forma de hacerlo, si a alguien se le ocurre otra idea sería de gran ayuda tambien.
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 18:39.