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

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

Linda Hamilton
發布: 2024-12-17 06:04:26
原創
880 人瀏覽過

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"></foreach></p><pre class="brush:php;toolbar:false">Key = ${entry.key}, value = ${entry.value}<br>
登入後複製


JSP 解

解決您的特定問題問題:


<p><select name="country"></select></p><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:

<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);
登入後複製

<br>}<p></p>
登入後複製
登入後複製

< ;p>或:

Map<String, String> countries = MainUtils.getCountries();
event.getServletContext().setAttribute(&quot;countries&quot;, countries);
登入後複製

<br>}<p></p>
登入後複製
登入後複製

進一步閱讀




  • 使用JSTL 迭代列表和映射的元素標記


  • 使用JSTL 迭代HashMap 中的ArrayList
  • 使用特殊的自動啟動Servlet 進行啟動時初始化和共享申請資料

以上是如何使用 JSTL 迭代 JSP 中的 HashMap 並避免使用 Scriptlet?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板