Evaluasi apakah daftar JSTL kosong

121

Saya telah mencoba untuk mengevaluasi apakah daftar array ini kosong atau tidak tetapi tidak satupun dari ini yang dikompilasi:

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

Bagaimana cara mengevaluasi jika ArrayList kosong?

OscarRyz
sumber

Jawaban:

245

emptyadalah seorang operator :

The emptyoperator adalah awalan operasi yang dapat digunakan untuk menentukan apakah suatu nilai adalah null atau kosong.

<c:if test="${empty myObject.featuresList}">
bobince
sumber
2
Meskipun didokumentasikan bahwa operator kosong tidak bekerja dengan baik dengan implementasi Set Koleksi di JSTL sebelum v2.0
casey
67

Ada juga tag fungsi, sedikit lebih fleksibel:

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

Dan inilah dokumentasi tagnya.

Steve B.
sumber