2009-05-12 19 views

Odpowiedz

392

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.

+45

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

+18

+1. Użyj go tak:

+0

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

10

można używać jak to

${fn:length(numList)} 
-2

użytku ${fn:length(companies) > 0} aby sprawdzić rozmiar. To zwraca wartość logiczną

26

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.

-2

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(); 
} 
Powiązane problemy