用JSTL检查一个集合的大小

我如何用JSTL检查一个集合的大小?

就像是:

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

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

length(java.lang.Object) – 返回集合中的项目数或string中的字符数。

把它放在页面的顶部,以允许fn命名空间:

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

并在你的jsp页面中使用像这样:

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

所以要testing一个集合的长度:

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

请注意,在jsp / jsf标记中不允许使用gt代替> as。

正如@Joel和@Mark Chorley在之前的评论中所build议的那样:

 ${empty companies} 

这将检查null和空列表/集合/数组。 它没有得到你的长度,但它满足OP中的例子。 如果你能摆脱它,这只是比导入一个标签库和它像gt一样硬皮的语法干净。

你可以这样使用

 ${fn:length(numList)} 

为了使您的jstl语句正常工作,您必须将其更改为:

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

为此,您必须向名为getSize的公司类添加一个方法,该方法以intforms返回大小。 然后使用之前使用过的相同的jstl语句。

以下是您应该添加到公司类中的getSize方法的示例:

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

使用${fn:length(companies) > 0}来检查大小。 这返回一个布尔值