Как я могу создать тег select с помощью JSTL или стандартных действий в JSP
Я хочу сделать тег select в JSP, где параметры являются перечислением (например, все штаты США). Является ли их тегом в JSTL или стандартным тегом, который может это сделать, не повторяя вручную список?
2 ответов
конечно, в JSTL (просто напишите jstl-1.2.Джар на /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>
на ${countries}
следует передать в List<Country>
или Country[]
который был помещен в любой из page
, request
, session
или application
области, где application
область является наиболее простым выбором, так как список стран должен быть константой приложения. Вы могли бы использовать ServletContextListener
чтобы загрузить его один раз и поместить в область приложения при запуске приложения. The Country
в этом примере просто класс Javabean (model) С по крайней мере двумя свойства.