Sprawdź rozmiar kolekcji za pomocą JSTL
Jak mogę sprawdzić rozmiar kolekcji za pomocą JSTL?
Coś w stylu:
<c:if test="${companies.size() > 0}">
</c:if>
5 answers
From: http://java.sun.com/products/jsp/jstl/1.1/docs/tlddocs/fn/tld-summary.html
Długość (jap.lang.Obiekt) - zwraca ilość elementów w kolekcji lub ilość znaków w łańcuchu.
Umieść to na górze strony, aby zezwolić na Przestrzeń nazw fn:
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
I użyj tak na swojej stronie jsp:
<p>The length of the companies collection is : ${fn:length(companies)}</p>
Więc do sprawdzenia z długością zbioru:
<c:if test="${fn:length(companies) gt 0}">
<p>It is greater than 0</p>
</c:if>
Zwróć uwagę na użycie gt
zamiast >
jako >
nie jest dozwolone wewnątrz znaczników jsp/jsf.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-28 06:56:43
Jak zasugerowali @Joel i @ Mark Chorley we wcześniejszych komentarzach:
${empty companies}
Sprawdza, czy nie ma pustych list/kolekcji / tablic. Nie daje Ci długości, ale spełnia przykład w OP. jeśli możesz się z tym wywinąć, jest to po prostu czystsze niż importowanie biblioteki znaczników i jej chrupiącej składni, takiej jak gt
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-12 10:38:16
Możesz użyć w ten sposób
${fn:length(numList)}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-15 02:43:42
Aby twoje oświadczenie jstl zadziałało, musisz zmienić je na:
<c:if test="${companies.size > 0}"></c:if>
W tym celu musisz dodać metodę do klasy companies o nazwie getSize, która zwraca rozmiar jako int. a następnie po prostu użyj tej samej instrukcji jstl, której używałeś wcześniej.
Oto przykład metody getSize
, którą powinieneś dodać do swojej klasy firm:
public int getSize(){
return companies.size();
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-23 10:22:06
Użyj ${fn:length(companies) > 0}
, aby sprawdzić rozmiar. Zwraca wartość logiczną
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-21 07:03:29