Use tag with a map

The <form:options> tag supports what you want right out of the box, using the items attribute. You can do something like this:

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");

And so on. Then in your form:

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

That will be rendered to something like:

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

Leave a Comment