首页 > Java > java教程 > 如何使用 JSTL 迭代 JSP 中的 HashMap 并避免使用 Scriptlet?

如何使用 JSTL 迭代 JSP 中的 HashMap 并避免使用 Scriptlet?

Linda Hamilton
发布: 2024-12-17 06:04:26
原创
872 人浏览过

How to Iterate Through HashMaps in JSP Using JSTL and Avoid Scriptlets?

在 JSP 中循环遍历 HashMap

在 JSP 中遍历 HashMap 与在纯 Java 代码中遍历 HashMap 类似。利用以下循环结构:


<pre class="brush:php;toolbar:false">String key = entry.getKey();
String value = entry.getValue();
// ...
登录后复制

}

Scriptlet 缺点

虽然 scriptlet 以前很常见,但它们现在现在被认为是不好的做法。相反,我们建议使用 JSTL,它提供了 。用于迭代 Maps 的标记,在每次迭代中使用 getKey() 和 getValue() 方法返回 Map.Entry 对象。

<p><foreach items="“${地图}”" var="entry"><pre class="brush:php;toolbar:false">Key = ${entry.key}, value = ${entry.value}<br>
登录后复制


JSP 解决方案

解决您的具体问题问题:


<p><select name="country"></p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"><c:forEach items=&quot;${countries}&quot; var=&quot;country&quot;>
    <option value=&quot;${country.key}&quot;>${country.value}</option>
</c:forEach>
登录后复制


要使 ${countries} 在请求的范围内可访问,请使用 Servlet 或ServletContextListener.

示例用例

以下是使用 Servlet 或ServletContextListener:

<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">Map<String, String> countries = MainUtils.getCountries();
request.setAttribute(&quot;countries&quot;, countries);
request.getRequestDispatcher(&quot;/WEB-INF/page.jsp&quot;).forward(request, response);</p>
登录后复制

}

< ;p>或者:

<pre class="brush:php;toolbar:false">Map<String, String> countries = MainUtils.getCountries();
event.getServletContext().setAttribute(&quot;countries&quot;, countries);
登录后复制

}

进一步阅读


  • 使用 JSTL 迭代列表和映射的元素标记

  • 使用 JSTL 迭代 HashMap 中的 ArrayList
  • 使用特殊的自动启动 Servlet 进行启动时初始化和共享申请数据

    以上是如何使用 JSTL 迭代 JSP 中的 HashMap 并避免使用 Scriptlet?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
上一篇:Java的数组是按值传递还是按引用传递? 下一篇:如何在 JFreeChart 可见后动态更新它的外观?
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
相关专题
更多>
热门推荐
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板