Как я могу создать тег select с помощью JSTL или стандартных действий в JSP

Я хочу сделать тег select в JSP, где параметры являются перечислением (например, все штаты США). Является ли их тегом в JSTL или стандартным тегом, который может это сделать, не повторяя вручную список?

2 ответов


нет в JSTL. Однако многие фреймворки предоставляют такие дополнительные теги:


конечно, в 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) С по крайней мере двумя свойства.

Читайте также: