web-dev-qa-db-fra.com

Accéder à la taille d'une collection dans JSP / JSTL / EL

J'ai une variable de liste appelée services dans ma page JSP. Je dois ajouter un balisage à la page s'il y a plus d'un élément dans la liste.

Ce que j'aimerais faire, c'est ...

<c:if test="${services.size() gt 1}">
  <!-- markup... -->
</c:if>

Mais vous ne pouvez pas invoquer de méthodes sur Java en EL (je pense que c'est peut-être la 364823782 fois que j'ai regretté ce fait). Vous ne pouvez accéder qu'à getters on Java objets en supprimant le 'get', par exemple $ {user.name} pour une classe User qui a une méthode getName ().

Quelle est la bonne façon d'évaluer ce test?

29
Drew Wills

Vous recherchez fn:length(services). N'oubliez pas de définir l'espace de noms fn.

http://download.Oracle.com/javaee/5/tutorial/doc/bnalg.html

47

Inclure la balise lib dans le fichier jsp

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

Utilisation

<c:if test="${fn:length(services) gt 1}">
<!-- markup... -->
</c:if>
13
Nickhil