2009-05-12 6 views

Répondre

392

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

longueur (java.lang.Object) - Retourne le nombre d'éléments dans une collection, ou le nombre de caractères dans un chaîne.

mis ce en haut de la page pour permettre à l'espace de noms fn:

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

et utiliser comme ceci dans votre page jsp:

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

Donc, pour tester avec la longueur d'un collection:

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

Notez l'utilisation de gt au lieu de > comme > n'est pas autorisé à l'intérieur des balises jsp/jsf.

+45

Je voulais juste noter que si la nécessité d'obtenir la taille est de déterminer si la collection est non vide, la L'opérateur "vide" est utile car il vérifie également null. – Joel

+18

+1. Utilisez-le comme ceci

+0

Je suis d'accord avec Mark ici. Pourquoi importer plus de cruft dans votre page pour un tag? Utilisez la solution de Mark, c'est plus propre. – ResourceReaper

10

Vous pouvez utiliser comme cette

${fn:length(numList)} 
-2

utilisation ${fn:length(companies) > 0} pour vérifier la taille. Cela renvoie un booléen

26

Comme le suggère @Joel et Chorley dans les commentaires @ Mark précédents:

${empty companies} 

Ce contrôle pour les listes nulles et vides/collections/tableaux. Il ne vous obtient pas la longueur mais il satisfait l'exemple dans le PO. Si vous pouvez vous en sortir, c'est plus propre que d'importer une bibliothèque de balises et sa syntaxe croustillante comme gt.

-2

Pour que votre déclaration jstl au travail, vous devez changer pour:

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

Pour cela, vous devez ajouter une méthode à la classe des entreprises appelée getSize qui retourne la taille int. puis utilisez simplement la même instruction jstl que vous avez utilisée auparavant.

Voici un exemple pour la méthode getSize que vous devez ajouter à votre classe entreprises:

public int getSize(){ 
    return companies.size(); 
} 
Questions connexes