Heim > Java > javaLernprogramm > Wie durchläuft man eine HashMap, um eine JSP-Dropdown-Liste zu füllen?

Wie durchläuft man eine HashMap, um eine JSP-Dropdown-Liste zu füllen?

Barbara Streisand
Freigeben: 2024-12-26 14:21:10
Original
809 Leute haben es durchsucht

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

Durchlaufen einer HashMap in JSP

Problemstellung

Wie kann man eine HashMap innerhalb von JSP-Skriptlets effektiv durchlaufen, um eine Dropdown-Liste zu füllen?

Lösung

In JSP das Durchlaufen einer HashMap ist identisch mit regulärem Java-Code. Man kann den folgenden Ansatz anwenden:

for (Map.Entry<String, String> entry : countries.entrySet()) {
    String key = entry.getKey();
    String value = entry.getValue();
}
Nach dem Login kopieren

JSTL für Iterationen verwenden

Von der Verwendung von JSP-Skriptlets wird jedoch abgeraten. Stattdessen wird empfohlen, JSTLs zu nutzen. Tag, der die Iteration über Maps ermöglicht. Jede Iteration gibt ein Map.Entry-Objekt mit den Methoden getKey() und getValue() zurück.

Zum Beispiel:

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

<c:forEach items="${map}" var="entry">
    Key = ${entry.key}, value = ${entry.value}<br>
</c:forEach>
Nach dem Login kopieren

Implementieren des Select Drop-Down

Anpassen des oben genannten Code zum Ausfüllen einer Dropdown-Liste:

<%@ 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>
Nach dem Login kopieren

Datenplatzierung in Geltungsbereich

Um Länder aus ${countries} heraus zugänglich zu machen, muss es im entsprechenden Geltungsbereich platziert werden. Dies kann erreicht werden durch:

  • Anforderungsbereich (Servlet doGet-Methode):

    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);
    }
    Nach dem Login kopieren
  • Anwendungsweiter Bereich (ServletContextListener contextInitialized Methode):

    public void contextInitialized(ServletContextEvent event) {
      Map<String, String> countries = MainUtils.getCountries();
      event.getServletContext().setAttribute("countries", countries);
    }
    Nach dem Login kopieren

Zusätzliche Ressourcen

  • [Iterieren über Listen und Karten in JSP mit JSTL](https://www.journaldev.com/2680/jsp-iterate-over-list-map-jstl)
  • [Iterieren über verschachtelte Karten in JSTL](https://stackoverflow.com/questions/11210152/how-to-iterate-over-a-nested-map-in-c-forEach)
  • [Iterieren einer ArrayList innerhalb einer HashMap mit JSTL](https://stackoverflow.com/questions/13002775/how-to-iterate-an-arraylist-inside-a-hashmap-using-jstl)
  • [Servlet initialisieren und Anwendungsdaten teilen auf Startup](https://www.mkyong.com/servlet/startup-servlet-contextlistner/)

Das obige ist der detaillierte Inhalt vonWie durchläuft man eine HashMap, um eine JSP-Dropdown-Liste zu füllen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage