Maison >Java >javaDidacticiel >Comment parcourir les HashMaps dans JSP à l'aide de JSTL et éviter les scriptlets ?

Comment parcourir les HashMaps dans JSP à l'aide de JSTL et éviter les scriptlets ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-17 06:04:26875parcourir

How to Iterate Through HashMaps in JSP Using JSTL and Avoid Scriptlets?

Faire une boucle à travers des HashMaps dans JSP

Parcourir une HashMap dans JSP est similaire à le faire en code Java brut. Utilisez la structure de boucle suivante :


<pre class="brush:php;toolbar:false">String key = entry.getKey();
String value = entry.getValue();
// ...

}

Inconvénients du scriptlet

Bien que les scriptlets étaient auparavant courants, ils sont est désormais considérée comme une mauvaise pratique. Nous vous recommandons plutôt d'utiliser JSTL, qui fournit l'attribut balise pour itérer sur Maps, renvoyant un objet Map.Entry avec les méthodes getKey() et getValue() à chaque itération.

<p><c:forEach items= "${carte}" var="entry"></p>
<pre class="brush:php;toolbar:false">Key = ${entry.key}, value = ${entry.value}<br>


Solution JSP

Pour résoudre votre problème spécifique problème :


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


Pour rendre ${countries} accessible dans le périmètre demandé, utilisez un servlet ou ServletContextListener.

Exemples d'utilisation

Voici des exemples d'utilisation de Servlet ou 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);</p>
<p>}<br>

< ;p>Ou :

<pre class="brush:php;toolbar:false">Map<String, String> countries = MainUtils.getCountries();
event.getServletContext().setAttribute(&quot;countries&quot;, countries);</p>
<p>}<br>

Plus loin Lecture


  • Itération sur des éléments de listes et de cartes à l'aide de JSTL Tag

  • Itération sur une carte imbriquée dans

  • Itération d'une ArrayList dans une HashMap à l'aide de JSTL

  • Utilisation du démarrage automatique spécial Servlet à initialiser au démarrage et partager les données d'application

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn