Ответ 1
Функция длины JSTL работает на Collection
, но не уверен, что она будет работать на Map
. Возможно, стоит попробовать.
Есть ли способ получить размер карты с помощью JSTL? Я попытался с ${myMap.size}, но он не работает.
Функция длины JSTL работает на Collection
, но не уверен, что она будет работать на Map
. Возможно, стоит попробовать.
получил решение: Используйте функции jstl.
<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
затем используйте вот так:
<c:if test="${fn:length(myMap) > 1 }">
${myMap.size}
не работает, потому что он преобразуется в myMap.getSize() парсером EL.
Попробуйте:
${myMap.size()}
Он должен работать.
Вы можете увидеть пример, чтобы найти размер HashMap JSTL здесь
Мы используем метод HashMap size
здесь
${numMap.size()}
Если вы пытаетесь просто распечатать счетчик - тогда вам нужно использовать теги 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 ошибочно, поэтому вышеописанное работало для меня.