Я хочу получить доступ к HashMap<Integer, ArrayList<Integer>>
по ключу в цикле в JSTL, но метод, который я попробовал, не работает.
Есть два метода, которые я попробовал, и хотя первый работает, он не использует цель использования HashMap.Я хочу иметь возможность получить доступ к значению, используя ключ напрямую.
<%
HashMap<Integer, ArrayList<Integer>> LocationLevels =
levelManagementBean.getLocationLevels((Integer)
session.getAttribute("NodeId"), (String)
session.getAttribute("NodeName"));
pageContext.setAttribute("LocationLevels", LocationLevels);
%>
<c:forEach items="${LocationLevels}" var="elem">
<c:if test="${elem.key == 9}">
<c:forEach items="${elem.value}" var="levs">
<c:out value="${levs}"/>
</c:forEach>
</c:if>
</c:forEach>
<br>
<c:set var="temp" value="9"/>
<c:forEach var="elem" items="${LocationLevels[temp]}">
<c:out value="${elem}"/>
</c:forEach>
LocationLevels - это HashMap, возвращаемый функцией Bean.Первые две строки кода находятся в тегах скриптлета (я знаю, что это не лучшая практика, но из-за некоторых ограничений я стараюсь, чтобы HashMap получал одинаковую часть при преобразовании всех остальных частей страницы JSP в JSTL).Функция getLocationLevels возвращает HashMap в требуемом формате, это гарантировано (потому что ранее у меня был Java-код в скриптлетах, который работал).
Предположим, я хочу получить доступ к ArrayList, хранящемуся в HashMap, который соответствует ключу 9. Первый цикл <c:forEach>
работает, но второй - нет, и я не могу понять, почему.
Любая помощь приветствуется.