Я хочу сделать избранный тег в JSP, где опциями является Перечисление (например, все штаты США). Их тег в JSTL или стандартный тег, который может сделать это, вручную не выполняя итерации через список?
Конечно, в JSTL (просто поместите jstl-1.2.jar в / WEB-INF / lib
) есть c: forEach
тег. Вам нужно будет только преобразовать (старомодное) Enumeration
в современный List
или, возможно, Enum
, если оно жестко запрограммировано на Java. При необходимости вы можете взять Collections # list ()
для этого, если Enumeration
должно быть получено из неизменяемого стороннего API.
Вот демонстрация того, как затем можно использовать
:
<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>
$ {country}
должны ссылаться на List
или Страна []
, указанная на любой из страницы
, запроса
, сеанса
или приложения
области - из которых область приложение
является наиболее простым выбором, поскольку список стран должен быть постоянной для всего приложения. Вы можете использовать ServletContextListener
, чтобы загрузить его один раз и поместить в область действия приложения при запуске приложения. Country
в этом примере представляет собой просто класс Javabean (модель) с как минимум двумя свойствами.