Как проверить размер коллекции с помощью JSTL?
Что-то вроде:
<c:if test="${companies.size() > 0}">
</c:if>
Как проверить размер коллекции с помощью JSTL?
Что-то вроде:
<c:if test="${companies.size() > 0}">
</c:if>
От: http://java.sun.com/products/jsp/jstl/1.1/docs/tlddocs/fn/tld-summary.html
length (java.lang.Object). Возвращает количество элементов в коллекции или количество символов в строке.
поместите это вверху страницы, чтобы разрешить пространство имен 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}
Это проверяет наличие пустых и пустых списков/коллекций/массивов. Это не дает вам длину, но она удовлетворяет примеру в OP. Если вам это удастся, это просто чище, чем импорт библиотеки тегов и ее сильного синтаксиса типа gt
.
Вы можете использовать это как
${fn:length(numList)}
Чтобы ваша инструкция jstl работала, вам придется изменить ее на:
<c:if test="${companies.size > 0}"></c:if>
Для этого вам нужно добавить метод в класс компаний, называемый getSize, который возвращает размер как int. а затем просто используйте тот же самый оператор jstl, который вы использовали ранее.
Вот пример метода getSize
, который вы должны добавить в свой класс компаний:
public int getSize(){
return companies.size();
}
используйте ${fn:length(companies) > 0}
, чтобы проверить размер. Это возвращает логическое значение