首頁 > Java > java教程 > 如何迭代 HashMap 來填入 JSP 下拉清單?

如何迭代 HashMap 來填入 JSP 下拉清單?

Barbara Streisand
發布: 2024-12-26 14:21:10
原創
809 人瀏覽過

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);
    }
    登入後複製
  • public void contextInitialized(ServletContextEvent event) {
      Map<String, String> countries = MainUtils.getCountries();
      event.getServletContext().setAttribute("countries", countries);
    }
    登入後複製

  • 應用程式範圍(ServletContextListener contextInitialized方法):
其他資源[在 JSP中使用迭代列表和映射JSTL](https://www.journaldev.com/2680/jsp-iterate-over-list-map-jstl)[迭代嵌套映射JSTL](h ttps://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中文網其他相關文章!

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