Проверьте размер коллекции с помощью JSTL
Как я могу проверить размер коллекции с помощью JSTL?
что-то типа:
<c:if test="${companies.size() > 0}">
</c:if>
5 ответов:
от:http://java.sun.com/products/jsp/jstl/1.1/docs/tlddocs/fn/tld-summary.html
длина (java.ленг.Объект) - возвращает количество элементов в коллекции, или количество символов в строке.
поместите это в верхней части страницы, чтобы разрешить пространство имен fn:
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
и используйте вот так на своей странице jsp:
<p>The length of the companies collection is : ${fn:length(companies)}</p>
чтобы проверить с длиной коллекция:
<c:if test="${fn:length(companies) gt 0}"> <p>It is greater than 0</p> </c:if>
обратите внимание на использование
gt
вместо>
как>
не допускается внутри тегов jsp/jsf.
как было предложено @Joel и @Mark Chorley в предыдущих комментариях:
${empty companies}
это проверяет наличие пустых и пустых списков / коллекций / массивов. Это не вам длины, но он удовлетворяет пример в ОП. Если вы можете уйти с ним это просто чище, чем импорт библиотеки тег и его резкий синтаксис как
gt
.
для того, чтобы ваш оператор jstl работал, вам нужно будет изменить его на:
<c:if test="${companies.size > 0}"></c:if>
для этого вам нужно добавить метод в класс companies с именем getSize, который возвращает размер как int. а затем просто используйте тот же оператор jstl, который вы использовали раньше.
вот пример
getSize
метод, который вы должны добавить в свой класс с:public int getSize(){ return companies.size(); }