Evaluar si la lista está vacía JSTL

121

He estado tratando de evaluar si esta lista de matriz está vacía o no, pero ninguno de estos se ha compilado:

<c:if test="${myObject.featuresList.size == 0 }">                   
<c:if test="${myObject.featuresList.length == 0 }">                 
<c:if test="${myObject.featuresList.size() == 0 }">                 
<c:if test="${myObject.featuresList.length() == 0 }">                   
<c:if test="${myObject.featuresList.empty}">                    
<c:if test="${myObject.featuresList.empty()}">                  
<c:if test="${myObject.featuresList.isEmpty}">  

¿Cómo puedo evaluar si una ArrayList está vacía?

OscarRyz
fuente

Respuestas:

245

emptyes un operador :

El emptyoperador es una operación de prefijo que se puede usar para determinar si un valor es nulo o está vacío.

<c:if test="${empty myObject.featuresList}">
bobince
fuente
2
Aunque está documentado que el operador vacío no funciona bien con la implementación de conjuntos de colecciones en JSTL antes de v2.0
casey
67

También están las etiquetas de función, un poco más flexibles:

<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<c:if test="${fn:length(list) > 0}">

Y aquí está la documentación de la etiqueta.

Steve B.
fuente