jueves, 14 de enero de 2010

Recorrer HashMap con Struts 2 y el tag iterator

Hace unos días indicaba como recorrer un HashMap desde una clase java, pero hoy he necesitado mostrar con Struts 2 y mediante el tag iterator los elementos y valores de un Map.

En concreto se trataba del un carrito de la compra:


Map<Equipo, Integer> carrito = new HashMap<Equipo, Integer>();




siendo Equipo una clase java


public class Equipo {



private Long id;

private String nombre;

private Long precio;

[...]

[...geters() y seters()...]

}




y almacenando como Integer la cantidad de productos de ese tipo Equipo que tenemos en el carrito de la compra.

La idea era mostrar el carrito en una tabla de HTML y finalmente el código quedo de esta forma:


<table>
<thead>Estado actual del carrito</thead>
<tr><td><b>Nombre___________</b></td><td><b>Cantidad______</b></td></tr>
<s:iterator id="carrito" value="carrito">
<tr>
<td><s:property value="key.nombre"/></td>
<td><s:property value="value"/></td>
</tr>
</s:iterator>
</table>



Lo importante de éste código son las líneas


value="key.nombre"
value="value"


donde Struts captura del HashMap carrito su KEY, que en este caso es una clase EQUIPO y muestra su nombre. No accede directamente a su atributo nombre, sino que mediante Struts 2 se accede al metodo getNombre() de la clase Equipo.

Para el caso de VALUE, es el valor Integer del HashMap correspondiente.

Si al carrito le añadimos:

carrito.put(new Equipo("Jabalina", 3);
carrito.put(new Equipo("Gorra", 1);


la tabla resultante se puede ver en la siguiente imagen:

2 comentarios:

  1. hola,

    tendrias el ejemplo completo del carrito de compras en struts 2 lo agradeceria mucho, mi email es buri18@gmail.com

    ResponderEliminar
  2. si me podrias ayudar con un ejemplo del carrito de compras con struts 2 te lo agradeceria mi email es luis_3145@hotmail.com

    ResponderEliminar