Jak mogę sprawdzić rozmiar kolekcji za pomocą JSTL?Sprawdź rozmiar kolekcji za pomocą JSTL
Coś jak:
<c:if test="${companies.size() > 0}">
</c:if>
Jak mogę sprawdzić rozmiar kolekcji za pomocą JSTL?Sprawdź rozmiar kolekcji za pomocą JSTL
Coś jak:
<c:if test="${companies.size() > 0}">
</c:if>
Od: http://java.sun.com/products/jsp/jstl/1.1/docs/tlddocs/fn/tld-summary.html
długości (java.lang.Object) - Zwraca liczbę elementów w kolekcji lub liczbę znaków w strunowy.
umieścić to na górze strony, aby umożliwić nazw Fn:
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
i używać jak to na stronie jsp:
<p>The length of the companies collection is : ${fn:length(companies)}</p>
tak przetestować z długości kolekcja:
<c:if test="${fn:length(companies) gt 0}">
<p>It is greater than 0</p>
</c:if>
Uwaga na użycie gt
zamiast >
jako >
nie jest dozwolone wewnątrz znaczników jsp/jsf.
można używać jak to
${fn:length(numList)}
użytku ${fn:length(companies) > 0}
aby sprawdzić rozmiar. To zwraca wartość logiczną
Jak sugeruje @Joel i @Mark Chorley we wcześniejszych komentarzach:
${empty companies}
ta sprawdza nieważne i pustych list/Kolekcje/tablic. Nie daje ci to długości, ale odpowiada przykładowi z PO. Jeśli możesz sobie z tym poradzić, jest to czystsze niż importowanie biblioteki znaczników i jej zaskakującej składni, takiej jak gt
.
Aby wyciągu JSTL do pracy, trzeba by go zmienić na:
<c:if test="${companies.size > 0}"></c:if>
Do tego trzeba dodać metodę do klasy firmy o nazwie getSize który zwraca rozmiar jak int. a następnie po prostu użyj tej samej instrukcji jstl, której użyłeś wcześniej.
Oto przykład dla metody getSize
które należy dodać do swojej klasy firm:
public int getSize(){
return companies.size();
}
prostu chciałem zwrócić uwagę, że jeśli potrzeba, aby uzyskać rozmiar jest ustalenie, czy kolekcja jest non pusty wówczas "pusty" operator jest przydatny, ponieważ sprawdza również pod kątem zerowej wartości. – Joel
+1. Użyj go tak: –
Zgadzam się z Mark tutaj. Po co importować więcej cruftów na swoją stronę dla jednego tagu? Użyj rozwiązania Marka, jest czystsze. – ResourceReaper