Конечно, в JSTL (просто перетащите jstl-1.2.jar в /WEB-INF/lib
) есть тег c:forEach
. Вам нужно будет только преобразовать (старомодный) Enumeration
в современный List
или, возможно, Enum
, если он жестко запрограммирован в Java. При необходимости вы можете получить Collections#list()
для этого, если Enumeration
необходимо получить из неизменяемого стороннего API.
Вот демонстрационный пример использования <c:forEach>
:
<select name="country">
<c:forEach items="${countries}" var="country">
<option value="${country.code}" ${param.country eq country.code ? 'selected' : ''}>${country.name}</option>
</c:forEach>
</select>
${countries}
должен обозначать List<Country>
или Country[]
, который был помещен в любую из page
, request
, session
или application
областей & mdash; из которых область действия application
является наиболее простым выбором, поскольку предполагается, что список стран является постоянной константой приложения. Вы можете использовать ServletContextListener
, чтобы загрузить его один раз и поместить в область приложения при запуске приложения. Country
в этом примере является просто классом Javabean (модель) с как минимум двумя свойствами.
Смотри также: