从基于JSTL的键的hashmap获取值

new*_*bie 44 java jsp jstl hashmap

我想获得HashMap基于密钥的价值.

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

map.put("key", arrayList);
request.setAttribute("key", map);
Run Code Online (Sandbox Code Playgroud)

我做的是

<c:forEach var="map" items="${requestScope.key}">
    <c:forEach var="hash" items="${map.value}">
        <option><c:out value="${hash}"/></option>
    </c:forEach>
</c:forEach>
Run Code Online (Sandbox Code Playgroud)

但似乎它正在打印所有内容,我想要做的是获取价值取决于关键像:hash.key或者其他什么

更新:
我做了类似的事情,但它仍然无法正常工作

<c:forEach var="map" items="${requestScope.key}">
    <c:forEach var="hash" items="${map['key']}">
        <option><c:out value="${hash}"/></option>
    </c:forEach>
</c:forEach>
Run Code Online (Sandbox Code Playgroud)

和StackTrace:Property 'External' not found on type java.util.HashMap$Entry
我很确定真的有这样的关键.

jas*_*son 88

如果您要做的只是获取地图中单个条目的值,则根本不需要循环任何集合.稍微简化gautum的响应,您可以获得命名映射条目的值,如下所示:

<c:out value="${map['key']}"/>
Run Code Online (Sandbox Code Playgroud)

其中'map'是集合,'key'是您尝试提取值的字符串键.

  • 这应该是接受的答案,但请注意,值的引号缺少`<c:out value ="$ {map ['key']}"/>` (4认同)