[英]Iterating a LinkedHashMap which contains another one
我有一个LinkedHashMap
,其中包含另一个LinkedHashMap
,如下所示:
LinkedHashMap<String,LinkedHashMap<String,String>> containerMap = new LinkedHashMap<String,LinkedHashMap<String,String>>();
我想分别从容器Map中提取值吗? 我的意思是对于容器映射的每个键,我都有一个LinkedHashMap
我想用它显示在我的JSP的下拉列表中
有任何想法吗?
我假设您需要基于容器映射的多个下拉列表。 如果是这样,从您sevlet设置地图请求对象作为request.setAttribute("containerMap", containerMap)
和使用嵌套forEach循环JSTL在JSP
<c:forEach items="${containerMap}" var="containerEntry" >
<select name="${containerEntry.key}" id="${containerEntry.key}">
<c:forEach items="${containerEntry.value}" var="innerEntry">
<option value="${innerEntry.key}">
<c:out value="${innerEntry.value}" />
</option>
</c:forEach>
</c:forEach>
LinkedHashMap<String,LinkedHashMap<String,String>> containerMap = new LinkedHashMap<String,LinkedHashMap<String,String>>();
我省略了类型(假设您至少使用Java 7)
LinkedHashMap<String, String> lhMap1 = new LinkedHashMap<>();
lhMap1.put("a", "b");
LinkedHashMap<String, String> lhMap2 = new LinkedHashMap<>();
containerMap.put("1", lhMap1);
containerMap.put("2", lhMap2);
然后在您的容器上可以调用get()
containerMap.get("1"); // will give you lhMap1
containerMap.get("1").get("a"); // will return 'b'
同样,keySet()和values()很有用。
containerMap.keySet(); // will give you a Set<String>
containerMap.values(); // will give you a Collection<LinkedHashMap<String, String>>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.