feed twitter facebook LinkedIn facebook

Java » Enviar un array a una JSP

Agosto 1, 2009 por Víctor Cuervo . 7327 visitas 1 Comentario Imprimir Imprimir

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:

 
<select id="favoritos" multiple="multiple" name="favoritos" size="9">
<option value="deportes">Deportes</option>
<option value="cine">Cine</option>
<option value="teatro">Teatro</option>
<option value="fotografía">Fotografía</option>
<option value="lectura">Lectura</option>
<option value="viajes">Viajes</option>
<option value="pintura">Pintura</option>
<option value="música">Música</option>
<option value="otros">Otros</option>
</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. <input type="submit" value="Enviar"/>
  15. </form>
  16.  

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... :-)

Descargar el Codigo
Descargar el código
Error en el Codigo
Error en el código
Foro sobre JSP
Foro sobre JSP
tags: , , , , , , , ,

Artículos relacionados:

1 comentario »

Redifusión RSS de los comentarios de la entrada. TrackBack URI

  1. Mario
    Mayo 6, 2010 #

    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!!

Deje un comentario

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

*