如何在JSP中使用JSTL或标准操作生成选择标记

时间:2010-02-10 13:39:08

标签: java html jsp jstl

我想在JSP中创建一个select标签,其中的选项是Enumeration(例如,所有美国州)。它们是JSTL中的标签还是可以执行此操作的标准标签,而无需手动迭代列表?

2 个答案:

答案 0 :(得分:16)

当然,在JSTL中(只需在/WEB-INF/lib中删除jstl-1.2.jar),就会出现c:forEach标记。如果它在Java中硬编码,您只需将(旧式)Enumeration转换为现代ListEnum。如果要从不可更改的第三方API获取Enumeration,您可以根据需要抓取Collections#list()

以下是演示如何使用<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[],其中包含pagerequestsession或{ {1}}范围 - application范围是最直接的选择,因为国家列表应该是应用程序范围的常量。您可以使用application加载一次,并将应用程序范围放在应用程序的启动上。在这个例子中,ServletContextListener只是一个至少有两个属性的Javabean(模型)类。

另见:

答案 1 :(得分:6)

JSTL中没有。然而,许多框架提供了这样的附加标签: