2009-05-12 10 views

risposta

392

Da: http://java.sun.com/products/jsp/jstl/1.1/docs/tlddocs/fn/tld-summary.html

lunghezza (java.lang.Object) - Restituisce il numero di elementi in una raccolta, o il numero di caratteri in un stringa.

mettere questo nella parte superiore della pagina per consentire lo spazio dei nomi fn:

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

e utilizzare come questo nella tua pagina JSP:

<p>The length of the companies collection is : ${fn:length(companies)}</p> 

Quindi, per testare con lunghezza di un collezione:

<c:if test="${fn:length(companies) gt 0}"> 
    <p>It is greater than 0</p> 
</c:if> 

Nota l'uso di gt invece di > come > non è consentito all'interno dei tag jsp/jsf.

+45

Volevo solo notare che, se la necessità di ottenere la dimensione è quello di determinare se la raccolta non è vuota, allora il l'operatore "vuoto" è utile poiché controlla anche null. – Joel

+18

+1. Usalo in questo modo

+0

Sono d'accordo con Mark qui. Perché importare più cruft nella tua pagina per un tag? Usa la soluzione di Mark, è più pulito. – ResourceReaper

10

È possibile utilizzare come questo

${fn:length(numList)} 
-2

uso ${fn:length(companies) > 0} per verificare le dimensioni. Ciò restituisce un valore booleano

26

Come suggerito da @ Joel e @ Marco Chorley nei commenti precedenti:

${empty companies} 

Questa verifica la presenza di liste/collezioni/array nulli e vuoti. Non ti dà la lunghezza ma soddisfa l'esempio nell'OP. Se riesci a farla franca, è più semplice dell'importazione di una libreria di tag e della sua sintassi croccante come gt.

-2

Affinché la sua dichiarazione JSTL a lavorare, si dovrebbe cambiare a:

<c:if test="${companies.size > 0}"></c:if> 

Per questo si deve aggiungere un metodo alla classe società denominata getSize che restituisce la dimensione come int. e poi usa la stessa frase jstl che hai usato prima.

Ecco un esempio per il metodo getSize che si dovrebbe aggiungere alla classe aziende:

public int getSize(){ 
    return companies.size(); 
} 
Problemi correlati