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

Eri*_*son 10 html java jsp jstl

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

Bal*_*usC 16

当然,在JSTL(刚落,JSTL-1.2.jar/WEB-INF/lib)还有的c:forEach标签.你只需将(旧式的)Enumeration转换为现代的,List或者Enum如果它是用Java硬编码的.如果要从不可更改的第三方API 获取Collections#list(),您可以根据需要获取此项Enumeration.

这是一个如何使用<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>
Run Code Online (Sandbox Code Playgroud)

${countries}应该是指一个List<Country>Country[]已被放置在任何的page,request,sessionapplication范围-其中的application范围是最简单的选择,因为国家的名单应该是一种应用广泛的常数.您可以使用a ServletContextListener加载一次并将应用程序范围放在应用程序的启动上.的Country是在本例中只是一个JavaBean(模型)具有至少两个属性的类.

也可以看看:


Boz*_*zho 6

在JSTL中没有.但是,许多框架提供了这样的附加标签: