Je veux obtenir la valeur de HashMap
en fonction de la clé.
HashMap<String, ArrayList<String>> map
= new HashMap<String, ArrayList<String>>();
ArrayList<String> arrayList = new ArrayList<String>();
map.put("key", arrayList);
request.setAttribute("key", map);
Ce que j'ai fait c'est
<c:forEach var="map" items="${requestScope.key}">
<c:forEach var="hash" items="${map.value}">
<option><c:out value="${hash}"/></option>
</c:forEach>
</c:forEach>
Mais il semble que tout soit imprimé, ce que je veux faire est d’obtenir la valeur qui dépend d’une clé du type: hash.key
ou de quelque chose
METTRE À JOUR:
J'ai fait quelque chose comme ça mais ça ne marche toujours pas
<c:forEach var="map" items="${requestScope.key}">
<c:forEach var="hash" items="${map['key']}">
<option><c:out value="${hash}"/></option>
</c:forEach>
</c:forEach>
et le StackTrace: Property 'External' not found on type Java.util.HashMap$Entry
Je suis à peu près sûr qu'il y a vraiment ce genre de clé.
si vous essayez uniquement d'obtenir la valeur d'une seule entrée dans une carte, il n'est pas nécessaire de parcourir en boucle une collection. En simplifiant légèrement la réponse de gautum, vous pouvez obtenir la valeur d’une entrée de carte nommée comme suit:
<c:out value="${map['key']}"/>
où "map" est la collection et "key" est la clé de chaîne pour laquelle vous essayez d'extraire la valeur.
pourriez-vous s'il vous plaît essayer ci-dessous le code
<c:forEach var="hash" items="${map['key']}">
<option><c:out value="${hash}"/></option>
</c:forEach>
J'avais un problème avec les solutions mentionnées ci-dessus, car spécifier la clé de chaîne me donnerait javax.el.PropertyNotFoundException. Le code ci-dessous a fonctionné pour moi. En cela, j'ai utilisé status pour compter l'indice de chaque boucle et afficher la valeur de l'indice qui m'intéresse
<c:forEach items="${requestScope.key}" var="map" varStatus="status" >
<c:if test="${status.index eq 1}">
<option><c:out value=${map.value}/></option>
</c:if>
</c:forEach>