繁体   English   中英

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

[英]How can I produce a select tag using JSTL or Standard Actions in a JSP

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

当然,在JSTL (只需将jstl-1.2.jar放到/WEB-INF/lib )有c:forEach标签。 您只需将(老式) Enumeration转换为现代List或者如果它是用 Java 硬编码的,则可能是Enum 如果要从不可更改的第 3 方 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[] ,它已经被放入任何pagerequestsessionapplication范围——其中application范围是最直接的选择,因为国家列表是应该是一个应用范围的常数。 您可以使用ServletContextListener将其加载一次并在应用程序启动时放入应用程序范围。 在这个例子中, Country只是一个至少有两个属性的 Javabean(模型)类。

也可以看看:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM