从基于密钥到 JSTL 的哈希图中获取价值

2022-08-31 20:10:40

我想获得基于键的值。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);

我做的是

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

但似乎它正在打印所有内容,我想做的是获取值取决于键,例如:或其他东西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>

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


答案 1

如果您要做的只是获取地图中单个条目的值,则根本不需要遍历任何集合。稍微简化 gautum 的响应,您可以按如下方式获取命名映射条目的值:

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

其中“map”是集合,“key”是您尝试为其提取值的字符串键。


答案 2

你可以试试下面的代码

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