Как получить размер HashMap с помощью jstl

Есть ли способ получить размер карты с помощью JSTL? Я попытался с ${myMap.size}, но он не работает.

Ответы

Ответ 1

Функция длины JSTL работает на Collection, но не уверен, что она будет работать на Map. Возможно, стоит попробовать.

Ответ 2

получил решение: Используйте функции jstl.

<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>

затем используйте вот так:

  <c:if test="${fn:length(myMap) > 1 }">

Ответ 3

${myMap.size}

не работает, потому что он преобразуется в myMap.getSize() парсером EL.

Попробуйте:

${myMap.size()}

Он должен работать.

Ответ 4

Вы можете увидеть пример, чтобы найти размер HashMap JSTL здесь

Мы используем метод HashMap size здесь

${numMap.size()}

Ответ 5

Если вы пытаетесь просто распечатать счетчик - тогда вам нужно использовать теги fn. Но если вы хотите обработать все элементы на карте или сделать что-то на основе количества доступных элементов, попробуйте использовать это с помощью только основного тега JSTL:

<c:if test="${mapVar != null}"/>
<c:forEach var="mapEntry" items="${mapVar}">
<!-- if there is any entry in the map do something -->
</c:forEach>
</c:if>

Вышеупомянутое эквивалентно Java Code

if (maVar != null && mapVar.size() >= 1) {
    // do something
}

Да, вы не можете распечатать такой размер, но вы все равно можете обрабатывать информацию о предметах.

Я предпочел это решение, потому что этот URL-адрес SUN ошибочно, поэтому вышеописанное работало для меня.