我有一个LinkedHashMap
,其中包含另一个LinkedHashMap
,如下所示:
LinkedHashMap<String,LinkedHashMap<String,String>> containerMap = new LinkedHashMap<String,LinkedHashMap<String,String>>();
我想单独从容器Map中提取值?我的意思是对于容器映射的每个键,我有LinkedHashMap
我想用它来显示在我的JSP上的下拉列表中
有什么想法吗?
答案 0 :(得分:1)
我假设你需要根据容器图进行多次下拉。如果是这样,你的sevlet将map设置为request.setAttribute("containerMap", containerMap)
请求对象,并在jsp中使用jstl的嵌套forEach循环
<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>
答案 1 :(得分:0)
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>>