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
Libérer: 2024-12-17 06:04:26
original
874 Les gens l'ont consulté

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 :


<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">String key = entry.getKey();
String value = entry.getValue();
// ...
Copier après la connexion

}

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>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">Key = ${entry.key}, value = ${entry.value}<br>
Copier après la connexion


Solution JSP

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


<p><select name="country"></p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><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>
Copier après la connexion


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

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!

source:php.cn
Article précédent:Le tableau de Java passe-t-il par valeur ou par référence ? Article suivant:Comment puis-je mettre à jour dynamiquement l'apparence de JFreeChart une fois qu'il est visible ?
Déclaration de ce site Web
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
Derniers articles par auteur
Derniers numéros
Rubriques connexes
Plus>
Recommandations populaires
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal