2011-01-31 14 views

Respuesta

6

La función de longitud JSTL funciona en un Collection pero no está seguro si funcionará en un Map. Podría valer la pena intentarlo.

+0

funcionará :) – coder247

+0

Un ejemplo, un enlace, _something_ haría que esta respuesta fuera mucho más útil. – Madbreaks

12
${myMap.size} 

no está funcionando, ya que se traduce a myMap.getSize() por el analizador EL.

Probar:

${myMap.size()} 

Se debe trabajar.

+0

-1 dijo que probó $ {myMap.size} – Qwerky

+1

Pero $ {myMap.size()} está funcionando. ¡En EL # {myMap.size} se convierte en myMap.getSize()! –

+3

$ {myMap.size()} de hecho funciona! – Stealth

28

obtuvieron la solución: Use las funciones jstl.

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

a continuación, utilizar la siguiente manera:

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

Prefiero la solución $ {myMap.size()} ... –

+1

Prefiero la solución fn: length() ... – Radek

+0

solo esto funciona de mí, gracias. – Denis

1

se puede ver un ejemplo para encontrar el tamaño JSTL HashMap here

Estamos utilizando HashMap size método aquí

${numMap.size()} 
0

Si Está intentando simplemente imprimir el conteo, entonces tiene que usar fn etiquetas. Pero si desea procesar todos los elementos de un mapa o hacer algo basado en el número de artículos disponibles, intente esto utilizando sólo núcleo de etiquetas JSTL:

<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> 

Lo anterior es equivalente al código de Java

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

Sí, no puede imprimir el tamaño de esta manera, pero aún puede procesar la información de los elementos existentes.

Preferí esta solución porque esa url de SUN se equivoca, por lo que lo anterior funcionó para mí.

Cuestiones relacionadas