使用JSTL检查集合大小

Ser*_*Amo 230 java jsp jstl

如何使用JSTL检查集合的大小?

就像是:

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

</c:if>
Run Code Online (Sandbox Code Playgroud)

Mar*_*ark 421

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

length(java.lang.Object) - 返回集合中的项目数或字符串中的字符数.

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

 <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
Run Code Online (Sandbox Code Playgroud)

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

<p>The length of the companies collection is : ${fn:length(companies)}</p>
Run Code Online (Sandbox Code Playgroud)

所以要测试一个集合的长度:

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

注意使用的gt,而不是>因为>没有JSP/JSF标签允许入内.

  • 只是想注意,如果需要获取大小是为了确定集合是否为非空,那么"empty"运算符是有用的,因为它也检查null. (46认同)
  • +1.像这样使用它<c:if test ="$ {empty companies}"> (21认同)
  • OP询问是否检查大小,不一定要检查它是否为空,我的答案还允许使用完整的标签库来考虑更复杂的场景. (9认同)

Jos*_*osh 30

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

${empty companies}
Run Code Online (Sandbox Code Playgroud)

这将检查null和空列表/集合/数组.它没有得到你的长度,但它满足OP中的例子.如果你可以逃脱它,这比导入标签库及其硬壳语法更简洁gt.


小智 12

你可以像这样使用

${fn:length(numList)}
Run Code Online (Sandbox Code Playgroud)