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

Pasar array javascript a servlet.

Estas en el tema de Pasar array javascript a servlet. en el foro de Java en Foros del Web. Hola a todos. Tengo un formulario en una página jsp. Al enviar el formulario, tengo un botón en lugar de submit, llamo a una función ...
  #1 (permalink)  
Antiguo 26/07/2007, 04:20
 
Fecha de Ingreso: julio-2003
Mensajes: 240
Antigüedad: 20 años, 10 meses
Puntos: 1
Pasar array javascript a servlet.

Hola a todos.

Tengo un formulario en una página jsp.

Al enviar el formulario, tengo un botón en lugar de submit, llamo a una función javascript que recopila en un array todos los valores de los parametros del formulario.

La función javascript llama a un servlet y le pasa un array.

En el servlet no recupero el array, creo que lo recupero mal, os pongo el código del proceso:


Código PHP:
// Recopilo el array
           
var Elementos = [];
            for (var 
i=0i<document.forms[Formulario].elements.lengthi++) 
                {
                    
Elementos[i] = document.forms[Formulario].elements[i].value;
                }

// Envío la petición. (los 2 primeros parametros se recuperan bien).
req.send("action=Eleccion&Tabla="+Tabla+"&Campo="+Campo+"&Valores="+Elementos);


// Recupero el array:
 
String[] Valores request.getParameterValues("Valores"); 
Alguna sugerencia, muchas gracias.

Salu2
  #2 (permalink)  
Antiguo 26/07/2007, 05:24
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: Pasar array javascript a servlet.

A no ser que hayan cambiado las cosas, para enviar un parametro con multiples valores en HTTP tienes que enviar el parametro repetido tantas veces como valores.

No se qué cadena devolvera en JavaScript
Código:
"&Valores="+Elementos
pero no creo que te escriba lo que sería correcto:
Código:
"&Valores=" + Elementos[0] + "&Valores=" + Elementos[1] + "&Valores=" + Elementos[2]....
S!
  #3 (permalink)  
Antiguo 26/07/2007, 05:51
 
Fecha de Ingreso: julio-2003
Mensajes: 240
Antigüedad: 20 años, 10 meses
Puntos: 1
Re: Pasar array javascript a servlet.

Si, ya me estaba dando cuenta de que es algo imposible y por eso en el servlet lo recupero, haga lo que haga, como 1 sólo valor, en este caso una cadena de texto.

Bueno, en javascript me creo una cadena de texto como la que me has puesto y lo paso.

Edito: Acabo de probarlo. Es lo que necesitaba. Paso una cadena de texto con todos los valores y luego puedo recuperar todo como si fuera un array en el servlet. Perfecto. Muchisimas gracias GreenEyed.

Salu2 y muchas gracias.



Pd: Pregunto tanto por que estoy en el trabajo y me es dificil probar estas cosas del "colegio" :D

Pd2: No hay nada para envio de valores múltiples?? Algo me suena... quizas sería para enviar ficheros.

Última edición por NeoKaisser; 26/07/2007 a las 06:03 Razón: Dar las gracias :P
  #4 (permalink)  
Antiguo 26/07/2007, 06:01
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: Pasar array javascript a servlet.

Hola,

Si lo envías como en el segundo trozo que he puesto, lo recuperas como un String[], de hecho si lo lees con getParameter() creo que no devuelve nada o solo el primer valor.

PD: Yo en mi caso lo que hago es tener un contenedor de servlets instalado en local con una aplicacion de prueba y usara para pequeños experimientos. Un JSP editada a lo guarro sirve para hacer pequeñas pruebas para confirmar detalles así, por ejemplo .

PPD: Quiza te confundas con el envio de ficheros (que usa la codificacion multi-part) por que HTTP envía los parametros con valores multiples así como te he puesto. A no ser que en alguna spec lo hayan cambiado.
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

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 01:56.