Wie kann man eine HashMap innerhalb von JSP-Skriptlets effektiv durchlaufen, um eine Dropdown-Liste zu füllen?
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(); }
Von der Verwendung von JSP-Skriptlets wird jedoch abgeraten. Stattdessen wird empfohlen, JSTLs
Zum Beispiel:
<%@ taglib prefix="c" uri="jakarta.tags.core" %> <c:forEach items="${map}" var="entry"> Key = ${entry.key}, value = ${entry.value}<br> </c:forEach>
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>
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); }
Anwendungsweiter Bereich (ServletContextListener contextInitialized Methode):
public void contextInitialized(ServletContextEvent event) { Map<String, String> countries = MainUtils.getCountries(); event.getServletContext().setAttribute("countries", countries); }
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!