[英]Get value by key and Iterate using JSTL over MAP
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);
I need to get data by key in JSP page and iterate over the map using JSTL. 我需要在JSP页面中通过键获取数据,并使用JSTL在地图上进行迭代。 How can I achieve this?
我该如何实现?
For example If get data by 1 then I will get map1 and will iterate over map1. 例如,如果通过1获得数据,那么我将获得map1并在map1上进行迭代。
Try this. 尝试这个。 if url is
yourUrl?num=1
you show map1 with key 1 or yourUrl?num=2
map2 with key 2. 如果url是
yourUrl?num=1
,则显示键1的map1或显示键2的yourUrl?num=2
map2。
Get key as param with param.num
in c:when . 在c:when中使用
param.num
获取密钥作为param。
<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>
Even easier, you can access your map by index and iterate through it(for example first map): 甚至更容易,您可以按索引访问地图并对其进行迭代(例如第一个地图):
<c:forEach items="${primaryMap[1]}" var="pair">
//do whatever you want to do
</c:forEach>
Pair is pair of type <Short, List<Object>>
from your map indexed by 1 in primaryMap
, to access list, you can do: ${pair.value}
, to access short you can do: ${pair.key}
, note that you also can iterate through list, nested foreach is allowed in jstl Pair是对类型为
<Short, List<Object>>
的一对地图,该地图在primaryMap
中以1索引,要访问列表,您可以执行: ${pair.value}
,要访问short可以进行: ${pair.key}
,请注意,您还可以遍历列表,jstl允许嵌套的foreach
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.