【发布时间】:2013-09-16 09:06:09
【问题描述】:
我想根据key获取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
我很确定确实有这种钥匙。
【问题讨论】:
-
您可以使用
${map["key_name"]},其中key_name是字符串键,即map.put("key_name", value),您可以简单地使用${map.key}来访问该键。 -
我尝试过这样做,但我抛出了一个错误,这是堆栈跟踪:
Property 'bool' not found on type java.util.HashMap$Entry -
你能贴出你所做的代码吗?
-
所以您只想打印地图的键值 -
"key"? -
仅使用内部 foreach 并删除外部 foreach 循环。在项目
items="${key['key']}"中使用它,其中${key}是请求属性中设置的映射。