Comment parcourir efficacement une HashMap dans des scriptlets JSP pour remplir une liste déroulante ?
En JSP, parcourir un HashMap est identique au code Java standard. On peut utiliser l'approche suivante :
for (Map.Entry<String, String> entry : countries.entrySet()) { String key = entry.getKey(); String value = entry.getValue(); }
Cependant, l'utilisation de scriptlets JSP est déconseillée. Au lieu de cela, il est recommandé d'exploiter la fonction
Par exemple :
<%@ taglib prefix="c" uri="jakarta.tags.core" %> <c:forEach items="${map}" var="entry"> Key = ${entry.key}, value = ${entry.value}<br> </c:forEach>
Adaptation de la code susmentionné pour remplir une liste déroulante :
<%@ 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>
Pour rendre les pays accessibles depuis ${countries}, il doit être placé dans le champ d'application approprié. Ceci peut être réalisé via :
Portée de la requête (méthode 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); }
Portée à l’échelle de l’application (ServletContextListener contextInitialized méthode) :
public void contextInitialized(ServletContextEvent event) { Map<String, String> countries = MainUtils.getCountries(); event.getServletContext().setAttribute("countries", countries); }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!