Как получить размер HashMap с помощью JSTL - PullRequest
15 голосов
/ 31 января 2011

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

Ответы [ 5 ]

29 голосов
/ 31 января 2011

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

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

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

  <c:if test="${fn:length(myMap) > 1 }">
11 голосов
/ 31 января 2011
${myMap.size}

не работает, поскольку он переводится в myMap.getSize () анализатором EL.

Попробуйте:

${myMap.size()}

Должно работать.

7 голосов
/ 31 января 2011

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

0 голосов
/ 01 сентября 2017

Если вы пытаетесь просто напечатать счетчик - тогда вам нужно использовать 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

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

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

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

0 голосов
/ 02 июля 2014

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

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

${numMap.size()}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...