2012-02-09 15 views
7

¿Hay alguna forma de asignar los datos dentro de un mapa a la etiqueta? Tengo un mapa Map<String, Integer> en mi código. ¿Hay alguna manera de asignar las etiquetas de opción al String en el mapa y Integer a los valores de opción?Usar la etiqueta <form:select> con un mapa

Respuesta

20

La etiqueta <form:options> es compatible con lo que desea al sacarlo de la caja, utilizando el atributo items. Puede hacer algo como esto:

LinkedHashMap<Integer, String> states = new LinkedHashMap<Integer, String>(); 
states.put(1, "Alabama"); 
states.put(2, "Alaska"); 
states.put(3, "Arizona"); 
states.put(4, "Arkansas"); 
states.put(5, "California"); 

Y así sucesivamente. Luego, en su formulario:

<form:select path="state"> 
    <form:options items="${states}" /> 
</form:select> 

que serán prestados a algo como:

<select name="state"> 
    <option value="1">Alabama</option> 
    <option value="2">Alaska</option> 
    <option value="3">Arizona</option> 
    <option value="4">Arkansas</option> 
    <option value="5">California</option> 
</select> 
+0

gracias :) su respuesta ayudó –

+0

esto es exactamente lo que necesitaba también! : D – wjhplano

7

Véase la primavera form:selectform:options y documentación. Use items, itemValue y itemLabel según sea necesario.

<form:select path="myFormVariable"> 
    <form:option value="0" label="Select One" /> 
    <form:options items="${myCollection}" itemValue="propertyToUseAsValue" itemLabel="propertyToUseAsDisplay" /> 
</form:select> 
+4

Creo que al usar un Mapa, 'itemValue' y' itemLabel' no son necesarios. –

+0

esto es uso completo cuando quiero usar una lista de objetos y quiero evitar crear un mapa innecesario. – Saif

Cuestiones relacionadas