Privacidad: Recuerde que la información escrita en los foros de programación es 100% pública y que su ip será registrada asociada a su mensaje. Si encuentra un mensaje fuera de lugar, por favor, notifiquelo para su revisión y eliminación.
pasar parametros en JSP
Enviado por Pilar el día 25 de enero de 2005
Hola!!
Tengo un problemilla para pasar parametros de una JSP a otra. El caso es que estoy siguiendo el patron MVC, y tengo una pagina controladora, que llama a una clase que accede a la base de datos, para recoger unos datos de varios productos. Estos resultados los guardo en un Vector que se devuelve a la pagina controladora.
Mi problema es, ¿como paso los resultados a la pagina que los visualiza si ni siquiera se cuantos tengo? He intentado pasar el vector con los resultados y recogerlo con request.getAttribute() pero no funciona. Podeis ayudarme por favor?? Muchas gracias
Es correcto lo q te dijeron pero no se recomienda pasar cosas por la sesion que pueden no pasarse por la sesion.
Volviendo a por q no te anda, habria q ver como lo estas seteando por el request. O sea, se hace asi:
request.setAttribute()
y luego se obtiene como vos dijiste.
Lo q tiene q quedar claro es q vos lo seteas seguro en un servlet (quizas el Action de STRUTS) de acuerdo a lo q entendi y a la pantalla q redirijas llegara lo q este en el request, pero no mas alla de la misma. Luego se pierde el valor. Si ese es tu caso => lo podes usar, pero si lo iras pasando entre pagina y pagina => el uso de la sesion es lo recomendado
Muchas gracias a los dos,
De momento estoy intentando hacerlo sin sesiones, porque es una tienda virtual, y debe tener la posibilidad de abrir una sesion o no. Solo necesito los resultados en la pagina que se visualiza, por lo que estoy intentando hacer como me has dicho, nicokiki. No se si te he entendido bien. Lo que estoy inentando es, declarar un nuevo vector. Lo seteo como dices con request.setAtribute(nuevo_vector, vector de los resultados bd); y lo paso a la siguiente pagina--> ..pagina.jsp?nuevo_vector=<%=nuevo_vector%>
En la siguiente recupero con request.getAtribute(vector) y me dice que error: getAttribute(java.lang.String) in javax.servlet.ServletRequest cannot be applied to (java.util.Vector)
Estoy un poco perdida, q estoy haciendo mal??
muchas gracias
A ver, de cero: la idea es que pases por el request un objeto. En este caso, el objeto es un vector de resultados de alguna query a una BD. Hasta ahi todo bien.
Cuando vos lo pasas por el request, solo haces esto:
request.setAttribute("objeto", vectorResultadoBd);
El 1º parametro es el nombre con el cual identificas al objeto q esta en el request y el 2º es el objeto a pasar.
NO ES NECESARIO poner ....pagina.jsp?vector=...... porque estas en un servlet seteando el request y el mismo no se pierde hasta q se llegue a otro destino, en tu caso, un JSP.
A la hora de tomar el valor desde el JSP, lo q haces es esto:
java.util.Vector vector = (Vector)request.getAttribute("objeto");
Otra consulta: trabajando con struts, ahi tengo una pagina jsp donde muestro datos de una DB. que viene de una consulta pero en esa misma pagina quiero mostrar otra consulta diferente como hago con el request.setAttribute de la clase ConstulaAction donde escojo que quiero mostrar......espero que me entiendas....gracias de antemano
A mi me pasa lo mismo, pero haciendo lo que tu dices en la JSP destino me recibe NULL.¿ Cómo haces el envio del request (document.location=..., document.forms[0].submit,... ? Gracias
A penas estoy aprendiendo usar struts... tengo un jsp que me despliega un conjunto de registros de la bd (visualizo con <display:table.../>)... lo que quiero hacer es que cuando el usuario haga un clic sobre uno de los registros (porque quiere editar o borrar) que el registro seleccionado sea visualizado en otro jsp de manera a realizar modificaciones sobre los mismo.. o borrarlo quizas...
me lleva realmente al otro jsp... pero solo me llena el campo id_recurso... ¿y el resto?... entiendo que debe recuperarlo de alguna manera con los getters desde el objeto "recurso" (en este ejemplo)... solo que todo esta en null... parece ser que es totalmente otro objeto de los que esta "getteando"... disculpen, probablemente este errado en el concepto de como se manejan las cosas con MVC...
Necesito una explicación a pruebas de tonto... please