Enviar un array a una JSP

01/Ago/2009 Java , , , , , 5 Comentarios

Ya hemos visto como Recibir parámetros en una JSP y Recibir un parámetro numérico en una JSP. El siguiente paso es ver como enviar un array a una JSP.

Imaginemos que ofrecemos a nuestro usuario escoger entre un listado de opciones dentro de una página web. El típico caso de ¿Cuales son tus aficiones favoritas?. Veamos como sería el posible formulario.

Lo primero será crear un combo para que el usuario seleccione las opciones. Nos apoyamos en la etiqueta SELECT para dicha tarea:

  1. <select id="favoritos" multiple="multiple" name="favoritos" size="9">
  2. <option value="deportes">Deportes</option>
  3. <option value="cine">Cine</option>
  4. <option value="teatro">Teatro</option>
  5. <option value="fotografía">Fotografía</option>
  6. <option value="lectura">Lectura</option>
  7. <option value="viajes">Viajes</option>
  8. <option value="pintura">Pintura</option>
  9. <option value="música">Música</option>
  10. <option value="otros">Otros</option>
  11. </select>

En el combo tenemos que percatarnos de varias cosas. Por un lado el nombre del combo, es decir, el valor del atributo name. En este caso es favoritos. Este es muy importante, ya que será el atributo que recuperaremos desde la JSP.

Por otro lado el atributo multiple. Este, al darle el valor "multiple" permite que el usuario de la página pueda seleccionar varias opciones. Todos los valores que el usuario seleccione serán los que viajen como una lista a nuestra JSP.

Ahora ponemos el combo dentro del formulario:

  1.  
  2. <form action="enviar-array.jsp" method="post">
  3. <label for="favoritos">Marca de las siguientes opciones, cuales son tus favoritas</label><br/>
  4. <select multiple="multiple" id="favoritos" name="favoritos" size=9>
  5. <option value="deportes">Deportes</option>
  6. <option value="cine">Cine</option>
  7. <option value="teatro">Teatro</option>
  8. <option value="fotografía">Fotografía</option>
  9. <option value="lectura">Lectura</option>
  10. <option value="viajes">Viajes</option>
  11. <option value="pintura">Pintura</option>
  12. <option value="música">Música</option>
  13. <option value="otros">Otros</option>
  14. </select>
  15. <input type="submit" value="Enviar"/>
  16. </form>
  17.  

Como destino del formulario hemos indicado la JSP que recibirá la lista de opciones. Será la JSP enviar-array.jsp

Empecemos con la JSP. En el ejemplo Recibir parámetros en una JSP veíamos la utilización del método .getParameter(), el cual nos devolvía el valor de uno de los parámetros enviados a la JSP.

Si en este caso utilizásemos este método, con la variable favoritos, este nos devolvería la primera de las opciones seleccionadas. Pero como lo que queremos es que nos devuelva todas las opciones utilizadas, vamos a utilizar el método .getParameterValues(). Este método devuelve todos los valores asociados a uno de los parámetros.

  1.  
  2. <%
  3. String[] favoritos = request.getParameterValues("favoritos");
  4. %>
  5.  

Ahora, solo nos quedará recorrerlo para mostrar en la JSP todos los valores que se nos han enviado. Para realizar esta tarea nos apoyaremos en un bucle for-each:

  1.  
  2. <%
  3. for(String favorito: favoritos)
  4. out.println(favorito + "<br/>");
  5. %>
  6.  

Como se puede ver es muy sencillo enviar un array a una JSP... 🙂

Vídeos sobre JSP


5 comentarios en “Enviar un array a una JSP”

Víctor Cuervo

Matadamas

Yo quiero imprimir un String pero no se como ir incrementando el arreglo ando en ello si alguien sabe publique

Víctor Cuervo

Víctor Cuervo

Qué arreglo quieres ir incrementando?? Explica un poco más el caso.

Víctor Cuervo

Matadamas

si quieres imprimir todos los datos del arreglo seria con un ciclo for mas o menos asi

for (i=0; i=<10; i++){

system.out.println(favoitos[i]);

}

Víctor Cuervo

oscar

cual es la sitaxis para enviar el array jsp a la base de datos una vez que se capturan los parametros?

Víctor Cuervo

Mario

Hola buen dia,
primero qe nada felicidades por el artículo y bueno una pregunta, si quisiera mandar todos los elementos contenidos en una lista sin importar si estan selecccionados o no, ¿Cómo podria ser? esa lista que quiero mandar de llenará dinámicamente con ajax y al final necesito enviar todos los elentos contenidos en ella, de antemano gracias!!

¿Algo que nos quieras comentar?

Déjanos tu comentario, no te preocupes que tu email no será publicado

*

*