newbie newbie - 11 months ago 60
Java Question

Get value from hashmap based on key to JSTL

I want to get the value of

based on key.

HashMap<String, ArrayList<String>> map
= new HashMap<String, ArrayList<String>>();
ArrayList<String> arrayList = new ArrayList<String>();

map.put("key", arrayList);
request.setAttribute("key", map);

What i did is

<c:forEach var="map" items="${requestScope.key}">
<c:forEach var="hash" items="${map.value}">
<option><c:out value="${hash}"/></option>

But it seems it's printing everything, what i want to do is to get the value depends on key like:
or something


I did something like this but it still doesn't work

<c:forEach var="map" items="${requestScope.key}">
<c:forEach var="hash" items="${map['key']}">
<option><c:out value="${hash}"/></option>

and the StackTrace:
Property 'External' not found on type java.util.HashMap$Entry

I'm pretty sure that there is really that kind of key.

jas jas
Answer Source

if all you're trying to do is get the value of a single entry in a map, there's no need to loop over any collection at all. simplifying gautum's response slightly, you can get the value of a named map entry as follows:

<c:out value="${map['key']}"/>

where 'map' is the collection and 'key' is the string key for which you're trying to extract the value.