I want to make a select tag in a JSP, where the options are an Enumeration (for example, all US States). Is their a tag in JSTL or a standard tag that can do this, without manually iterating through the list?
Certainly, in JSTL (just drop jstl-1.2.jar in /WEB-INF/lib) there's the c:forEach tag. You'll only have to convert the (old fashioned) Enumeration to a modern List. You can if necessary grab Collections#list() for this if the Enumeration is to be obtained from an unchangeable 3rd party API.
Here's a demo how the c:forEach can be used:
<select name="country">
<c:forEach items="${countries}" var="country">
<option value="${country.code}">${country.name}</option>
</c:forEach>
</select>
The ${countries} should obviously refer a (fictive) List<Country> which has been put in any of the page, request, session or application scopes --of which the application scope is IMHO the most straightforward choice, as a list of countries is supposed to be an all-time constant. You could use a ServletContextListener to load it once and put in application scope on application's startup. The Country is in this example just a Javabean (model) class with at least two properties.
Update: you can of course also read "countries" as "states".
There isn't in JSTL. However many frameworks provide such additional tags:
Struts2 -
<s:select>Spring MVC -
<form:select>- JSF -
<h:selectOneMenu>