首页 > Java > java教程 > 如何迭代 HashMap 来填充 JSP 下拉列表?

如何迭代 HashMap 来填充 JSP 下拉列表?

Barbara Streisand
发布: 2024-12-26 14:21:10
原创
875 人浏览过

How to Iterate Through a HashMap to Populate a JSP Dropdown List?

在 JSP 中循环访问 HashMap

问题陈述

如何在 JSP scriptlet 中有效地迭代 HashMap 来填充下拉列表?

解决方案

在JSP中,遍历 HashMap 与常规 Java 代码相同。可以采用以下方法:

for (Map.Entry<String, String> entry : countries.entrySet()) {
    String key = entry.getKey();
    String value = entry.getValue();
}
登录后复制

使用 JSTL 进行迭代

但是,不鼓励使用 JSP scriptlet。相反,建议利用 JSTL 的 标签,它允许迭代地图。每次迭代都会返回一个带有 getKey() 和 getValue() 方法的 Map.Entry 对象。

例如:

<%@ taglib prefix="c" uri="jakarta.tags.core" %>

<c:forEach items="${map}" var="entry">
    Key = ${entry.key}, value = ${entry.value}<br>
</c:forEach>
登录后复制

实现选择下拉列表

调整上述代码用于填充下拉列表:

<%@ taglib prefix="c" uri="jakarta.tags.core" %>

<select name="country">
    <c:forEach items="${countries}" var="country">
        <option value="${country.key}">${country.value}</option>
    </c:forEach>
</select>
登录后复制

数据放置范围

要使${countries}内的国家/地区可访问,需要将其放置在适当的范围内。这可以通过以下方式实现:

  • 请求范围(Servlet doGet 方法):

    protected void doGet(HttpServletRequest request, HttpServletResponse response) {
      Map<String, String> countries = MainUtils.getCountries();
      request.setAttribute("countries", countries);
      request.getRequestDispatcher("/WEB-INF/page.jsp").forward(request, response);
    }
    登录后复制
  • 应用程序范围(ServletContextListener contextInitialized方法):

    public void contextInitialized(ServletContextEvent event) {
      Map<String, String> countries = MainUtils.getCountries();
      event.getServletContext().setAttribute("countries", countries);
    }
    登录后复制

其他资源

  • [在 JSP 中使用迭代列表和映射JSTL](https://www.journaldev.com/2680/jsp-iterate-over-list-map-jstl)
  • [迭代嵌套映射JSTL](https://stackoverflow.com/questions/11210152/how-to-iterate-over-a-nested-map-in-c-forEach)
  • [使用 HashMap 迭代 ArrayList JSTL](https://stackoverflow.com/questions/13002775/how-to-iterate-an-arraylist-inside-a-hashmap-using-jstl)
  • [启动时初始化 Servlet 并共享应用程序数据](https://www.mkyong.com/servlet/startup-servlet-contextlistner/)

以上是如何迭代 HashMap 来填充 JSP 下拉列表?的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板