在JSP / JSTL / EL中访问集合的大小

时间:2010-08-26 21:10:49

标签: java jsp jstl el

我的JSP页面中有一个名为services的List变量。如果列表中有多个元素,我需要在页面中添加一些标记。

我想做的是......

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

但你不能在EL中调用Java对象的方法(我想这可能是364823782时间,我后悔这个事实)。您只能通过删除“get”来访问Java对象上的 getters ,例如$ {user.name}用于具有getName()方法的User类。

评估此测试的正确方法是什么?

2 个答案:

答案 0 :(得分:47)

您正在寻找fn:length(services)。记得定义fn名称空间。

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

答案 1 :(得分:13)

在jsp文件中包含标记lib

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

使用

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