Dos bean en una sola página

Hola, estoy haciendo un pequeño proyecto y tengo un problema a la hora de guardar algún parámetro. En una misma página de jsp quiero recuperar datos de un bean, para tratarlos, y más tarde guardar unos resultados en otro bean. Como no me funciona noe se si es que lo hago mal o es que no se pueden utilizar dos bean en una misma página.

1 respuesta

Respuesta
1
Dos beans sí que puedes utilizarlos en una misma jsp... Debe haber otro problema. Pásame la jsp y el error que te lanza...
Hola,
entonces para usar dos bean tengo que abrir primero uno, recoger sus datos y después cerrarlo, y más tarde hacer lo mismo con el otro bean. Es que lo he intentado así, y no funciona.
Para usar dos beans sólo tienes que declararlos, con nombres diferentes, y acceder a ellos como quieras. No deberías tener problemas. Eso sí, debes asegurarte que tienen nombres diferentes (eso lo defines en el tag "use bean")
Hola,
eso ya lo he probado y me da problemas,
<jsp:useBean id="meter" ...>
<jsp:useBean id="sacar" ...>
Y después llamar a los métodos de cada bean.
Poniéndolo así solo me reconoce los métodos del ultimo bean y los del primero nada.
¿Me puedes pasar tu jsp y el error que te da?
Hola otra vez,
Ya he conseguido utilizar dos bean, pero utilizando sus métodos detrás de la declaración del usebean, sin cerrarlo.
De todas formas ahora he hecho lo mismo solo que en un solo bean, para ver si me tiraba lo que quería hacer, y no me va.
Lo que hago es crear una conexión a una bd, y lo que quiero hacer es guardar ese objeto Connection en un bean para usarlo en otra página. Pero cuando lo voy a usar en la otra página me pone que la conexión es null, no se porque me da fallo. Te pongo lo que hago:
//en una pagina hago esto
Connection conn = DriverManager.getConnection(url);
unido.setConn(conn_actual)
//y en la otra
Connection conn = recoger.getConn();
Saludos
Comprueba el scope del bean... ha de ser, como mñinimo, de session. De todas formas, tencuidado con abrir las conn de BBDD en el lado del cliente... yo de ti alo encapsularía en alguna clase que haga de ConnectionManager...
Hola,
El scope es session, y la conexión la creo en el lado del servidor, solo que la utilizo en el lado del cliente para poder mostrar datos de la bd.
De todas formas, muchas gracias.
Saludos.
Como quieras, pero en mi opinión no es muy buena idea tratar directamente con la conexión en la JSP.
Suerte.
N.
Hola,
Como no me funciona, igual es que no se puede guardar la conexión para utilizarla posteriormente, y tiene que ser utlizada en la página en que se crea.
De todas formas ¿cómo o donde voy a usar la conexión si quiero crear un objeto databasemetada para obtener metadatos?
Debes construirte una clase que sea una factoría de conexiones. Sólo esa clase será capaz de crear o destruir conexiones... Desde un bean, y a partir de esa clase, podrás obtener una conexión, ultilizarla, obtener los metadatos que sean y luego cerrarla. Toda esta información encapsúlala en clases y trabaja con éstas desde tu JSP. De esta manera las conn de bbdd están fuera del lado cliente, tienes la información fácilmente disponible y no tendrás problemas de dejarte recursos "colgando"...
Hola,
Así que lo que tengo que hacer es una clase en la que tenga un "constructor" dde conexiones, y métodos para obtener esa conexión desde la página jsp, ademas de un método que me la finalice, ¿no?
Si es así, cada cliente tendrá una conexión diferente, ¿no?
La solución para el tema de copnnexiones es un pool de conexiones. No es difícil de hacer y es muy útil! Él se encargará de crear, apilar, destruir si es necesario etc...
Hola,
Con lo de pool te refieres a una clase que contenga todos los métodos que son necesarios para tratar las conexiones, ¿no? ¿Pero se guarda la concurrencia de clientes?
Si es así, gracias por todo, me has sido de gran ayuda.
Saludos.
La concurrencia a la hora de obtener las conexiones dependerá del diseño del pool que hagas. Debes hacer una clase "singleton" para que sólo haya una sola instancia del pool. También deberás sincronizar el acceso los métodos que devuelvan una conexión. Cada conexión srá única para cada usuario, con lo que no deberás preocuparte en ese sentido una vez la quieras utilizar.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas