用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}
来检查大小。 这返回一个布尔值