2011-01-31 14 views

Odpowiedz

6

Funkcja długości JSTL działa na Collection, ale nie jest pewna, czy zadziała na Map. Może być warte spróbowania.

+0

to zadziała :) – coder247

+0

Przykład, link, _something_ sprawiłby, że ta odpowiedź byłaby o wiele bardziej pomocna. – Madbreaks

12
${myMap.size} 

nie działa, ponieważ jest ona tłumaczona na myMap.getSize() przez parser EL.

Spróbuj:

${myMap.size()} 

To powinno działać.

+0

-1 powiedział, że próbował $ {myMap.size} – Qwerky

+1

Ale działa {{mojaMapa.size()}. W EL # {myMap.size} jest konwertowany na myMap.getSize()! –

+3

$ {myMap.size()} rzeczywiście działa! – Stealth

28

Dostałem rozwiązanie: Użyj funkcji jstl.

<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> 

następnie używać tak:

<c:if test="${fn:length(myMap) > 1 }"> 
+0

Preferuję rozwiązanie $ {myMap.size()} ... –

+1

Preferuję rozwiązanie fn: length() ... – Radek

+0

tylko to działa mnie, thx. – Denis

1

można zobaczyć przykład, aby znaleźć rozmiar JSTL HashMap here

Używamy HashMap size metody tutaj

${numMap.size()} 
0

If próbujesz po prostu wydrukować liczbę - wtedy musisz użyć fn tagi. Ale jeśli chcesz, aby przetworzyć wszystkie przedmioty na mapie lub zrobić coś na podstawie liczby elementów dostępny, spróbuj tego używając jedynie rdzenia JSTL tagu:

<c:if test="${mapVar != null}"/> 
<c:forEach var="mapEntry" items="${mapVar}"> 
<!-- if there is any entry in the map do something --> 
</c:forEach> 
</c:if> 

Powyższe jest odpowiednikiem kodu Java

if (maVar != null && mapVar.size() >= 1) { 
    // do something 
} 

Tak, nie można wydrukować takiego rozmiaru, ale nadal można przetwarzać informacje o istniejących elementach.

Preferowałem to rozwiązanie, ponieważ te błędy url SUN, więc powyższy pracował dla mnie.

Powiązane problemy