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

Paso de variables entre JSPs

Estas en el tema de Paso de variables entre JSPs en el foro de Java en Foros del Web. Hola. Tengo un jsp que contiene unas variables, con las que luego quiero trabajar en otros 2 JSP, con lo que tienen que ser accesibles ...
  #1 (permalink)  
Antiguo 21/05/2008, 04:36
 
Fecha de Ingreso: agosto-2007
Mensajes: 27
Antigüedad: 16 años, 8 meses
Puntos: 0
Paso de variables entre JSPs

Hola.
Tengo un jsp que contiene unas variables, con las que luego quiero trabajar en otros 2 JSP, con lo que tienen que ser accesibles desde ahi.

Habia probado a crearme una clase, donde guardar y poder recuperar las variables desde la otra página, pero no quiero hacer una funcion getVariable y una SetVariable por cada una (son muchas las que tengo que pasar).

¿Como consigo llamar a esos 2 jsp, y pasarle las variables?

Saludos y gracias.
  #2 (permalink)  
Antiguo 21/05/2008, 08:21
Avatar de Lino-kun  
Fecha de Ingreso: mayo-2008
Ubicación: Cuernavaca Morelos Mexico
Mensajes: 126
Antigüedad: 15 años, 11 meses
Puntos: 2
Respuesta: Paso de variables entre JSPs

No necesitas una clase para pasar variables de un JSP a otro JSP, si estos JSP se llaman en el Scope de request solo necesitas en el JSP que quieres obtener las variables hacer un request.getParameter("parametro"); si no son en el scope de request puedes establecer variables session y despues de obtener los valores eliminarlas.

mira algo como esto, si tus variables las tienes declaracas como objetos de tipo form como un text, radio, etc. en tu jsp las obtienes asi
Código PHP:
   request.getParameter("parametro"); 
y en el jsp 1 solo submites.

si no son de tipo formularo y las esta declarando tienes que establecerlas como atributos. y despues recuperar los atributos.

JSP1
Código PHP:
   request.setAttribute("nombre_atributo",objeto); 
JSP2
[PHP]
<% if(request.getAttribute(“nombre_attributo”)!=null) {
out.println(request.getAttribute(“nombre_attributo ”));
} else{
out.println(“Algo”);
}%>
[PHP]

pero mejor especifica que tipo de variables quieres pasar. tambien se pueden pasar por url con al como esto
Código PHP:
response.sendRedirect("/page.jsp?id="+id+"&nombre="+nombre); 
  #3 (permalink)  
Antiguo 22/05/2008, 05:17
 
Fecha de Ingreso: agosto-2007
Mensajes: 27
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: Paso de variables entre JSPs

Ok, probaré de esa forma, gracias. El problema que me asalta ahora es...

¿Como llamo luego al siguiente JSP para que se ejecute?

Me explico...
1- tengo un JSP principal, donde esta el formulario y defino las variables.
2- De ahi, tiene que pasar a otro donde tengo unas funciones.
3- A continuacion, llamar a un tercero para ejecutar otras funciones.

Es decir, tiene que seguir un orden, pero sin que haya formularios por medio.

Saludos
  #4 (permalink)  
Antiguo 22/05/2008, 05:48
 
Fecha de Ingreso: agosto-2007
Mensajes: 27
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: Paso de variables entre JSPs

Por cierto, que se me ha olvidado, todos son objetos de tipo numerico o de texto, tanto simples como vectores y matrices.
  #5 (permalink)  
Antiguo 22/05/2008, 07:46
Avatar de drac94  
Fecha de Ingreso: mayo-2008
Ubicación: México
Mensajes: 383
Antigüedad: 15 años, 11 meses
Puntos: 5
Respuesta: Paso de variables entre JSPs

para mandar llamar a otra pagina lo puedes hacer desde html con este simple codigo, siempre y cuando dentro del formulario tengas un boton submit

<form action="pagina_siguiente.jsp">

si lo quieres hacer automaticamente con codigo java la instruccion es
Código:
response.SendRedirect("pagina_siguiente.jsp");
asi de facil
  #6 (permalink)  
Antiguo 23/05/2008, 00:27
 
Fecha de Ingreso: agosto-2007
Mensajes: 27
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: Paso de variables entre JSPs

Muchas gracias, ha funcionado.
  #7 (permalink)  
Antiguo 23/05/2008, 03:11
 
Fecha de Ingreso: agosto-2007
Mensajes: 27
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: Paso de variables entre JSPs

Otra cosa más:

Estoy agrupando los datos en ArrayList para pasarlos como atributos. Tengo un arrayList por cada tipo de datos, pero no consigo definirlos.

Con:
Código:
 ArrayList <Integer>LInt = new ArrayList<Integer>();
Me salta el error:
Código:
 An error occurred at line: 60 in the jsp file: /apl/principal.jsp
Generated servlet error:
Syntax error on token "<", invalid AssignmentOperator
Si no le indico el tipo, me aparece un warning:
Código:
 Type safety: The method add(Object) belongs to the raw type ArrayList. References to generic 
 type ArrayList<E> should be parameterized
  #8 (permalink)  
Antiguo 23/05/2008, 09:40
Avatar de Lino-kun  
Fecha de Ingreso: mayo-2008
Ubicación: Cuernavaca Morelos Mexico
Mensajes: 126
Antigüedad: 15 años, 11 meses
Puntos: 2
Respuesta: Paso de variables entre JSPs

A ver por que mejor en lugar de hacer un ArrayList de tipos genericos no usas las bases

mira un ArrayList es una lista a final de cuentas, los tipos genericos <Integer> por ejemplo dan problemas en algunas versiones del JDK.

yo lo que haria seria algo como esto.

Código PHP:
import java.util.*;
.....
List 
result=new ArrayList();

//lleno el arrayList
while(condicion){
    
result.add(Objeto);
}

//si lo quieres pasar como atributo de request
request.setAttribute("lista",result);

//si lo quieres pasar como atributo de session
session.setAttribute("lista",result); 
para obtener los objetos del arrayList
Código PHP:
int count=0;
for (
Iterator it result.iterator(); it.hasNext();) {
        
tuObjeto=(Objeto)result.get(count);
        
it.next();
     
count++;

tuObjeto es un objeto de tipo int, char, boolean, una clase String etc. y Objeto es el tipo de objeto para hacer el cast.
  #9 (permalink)  
Antiguo 23/05/2008, 10:21
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: Paso de variables entre JSPs

Cita:
Iniciado por Lino-kun Ver Mensaje
mira un ArrayList es una lista a final de cuentas, los tipos genericos <Integer> por ejemplo dan problemas en algunas versiones del JDK.
Eso no lo habia oido. ¿Alguna referencia o ejemplo?

Cita:
Iniciado por Lino-kun Ver Mensaje
yo lo que haria seria algo como esto.
...
tuObjeto es un objeto de tipo int, char, boolean, una clase String etc. y Objeto es el tipo de objeto para hacer el cast.
Un Object no puede ser nunca del tipo int, char o boolean. Esos son tipos primitivos y son los unicos tiposen Java, los primitivos, que no heredan de Object. Como mucho en un List puedes meter sus "wrapper classes" Integer, Character y Boolean, pero no los primitivos. Las ultimas versiones del JDK "simulan" que lo puedes hacer, pero por que usan Autoboxing para la conversion.

S!
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #10 (permalink)  
Antiguo 23/05/2008, 10:26
Avatar de Lino-kun  
Fecha de Ingreso: mayo-2008
Ubicación: Cuernavaca Morelos Mexico
Mensajes: 126
Antigüedad: 15 años, 11 meses
Puntos: 2
Respuesta: Paso de variables entre JSPs

Referencias de ArrayList, todos felices y contentos al cliente lo que pida saludos.

http://www.itapizaco.edu.mx/paginas/...e4/cap4-7.html
  #11 (permalink)  
Antiguo 23/05/2008, 11:56
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: Paso de variables entre JSPs

Quiza no me he expresado bien, lo que queria era una referencia a eso de que "los tipos genericos <Integer> por ejemplo dan problemas en algunas versiones del JDK"



S!
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #12 (permalink)  
Antiguo 26/05/2008, 02:40
 
Fecha de Ingreso: agosto-2007
Mensajes: 27
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: Paso de variables entre JSPs

Ya probé a hacerklo con List, pero no pdia pasar los datos primitivos, y al intentar castearlos, me daba problemas. Así que me tiré por la tangente, y use los ArrayList.
Sin embargo, sigo sin saber porque no me deja ponerle el tipo de datos al ArrayList.
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 13:36.