Map<Short, Map<Short, List<Object>>> primaryMap = new Map<>();
Map<Short, List<Object>> map1 = new HashMap<Short, List<Object>>();
map1.put(1, Object1);
map1.put(2, Object2);
map1.put(3, Object3);
map1.put(4, Object4);
map2 = new HashMap<Short, List<Object>>();
map2.put(1, Object1);
map2.put(2, Object2);
map2.put(3, Object3);
map2.put(4, Object4);
primaryMap.put(1, map1);
primaryMap.put(2, map2);
ModelAndView returnModel = new ModelAndView("customer/blockcard");
returnModel.addObject("primaryMap", primaryMap);
我需要在JSP页面中按键获取数据并使用JSTL迭代地图。我怎样才能做到这一点?
例如,如果获取数据1,那么我将得到map1并将迭代map1。
答案 0 :(得分:0)
试试这个。如果网址为yourUrl?num=1
,则显示带有密钥1的map1或带有密钥2的yourUrl?num=2
map2。
使用 c中的param.num
获取密钥作为参数:。
<c:forEach items="${primaryMap}" var="primary">
<c:choose>
<!--test="primary.key eq 1"-->
<c:when test="${primary.key eq param.num}">
<c:forEach items="${primary.value}" var="subPrimary">
<c:forEach items="${subPrimary.value}" var="listElement">
${listElement}
</c:forEach>
<hr />
</c:forEach>
</c:when>
</c:choose>
</c:forEach>
答案 1 :(得分:0)
更简单的是,您可以通过索引访问地图并迭代它(例如第一张地图):
<c:forEach items="${primaryMap[1]}" var="pair">
//do whatever you want to do
</c:forEach>
配对是一对类型
您的地图<Short, List<Object>>
在primaryMap
中被1索引,
要访问列表,您可以执行:${pair.value}
,以便访问简短
执行:${pair.key}
,请注意您也可以遍历列表,嵌套
在jstl中允许使用foreach