Jsp 使用JSTL检查集合大小

Jsp 使用JSTL检查集合大小,jsp,collections,jstl,Jsp,Collections,Jstl,如何使用JSTL检查集合的大小 比如: <c:if test="${companies.size() > 0}"> </c:if> 如果您实际上面临EL解析错误,那么您可能使用了太旧的EL版本。然后需要JSTLfn:length()函数。发件人: length(java.lang.Object)返回集合中的项数或字符串中的字符数 将其放在JSP页面顶部,以允许fn名称空间: <%@ taglib prefix="fn" uri=&q

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

比如:

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

</c:if>

如果您实际上面临EL解析错误,那么您可能使用了太旧的EL版本。然后需要JSTL
fn:length()
函数。发件人:

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

将其放在JSP页面顶部,以允许
fn
名称空间:

<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
你可以这样用

${fn:length(numList)}

使用
${fn:length(companys)>0}
检查大小。这将返回一个布尔值,正如@Joel和@Mark Chorley在前面的评论中所建议的那样:

${empty companies}

这将检查空列表/集合/数组。它不能得到长度,但它满足OP中的示例。如果你可以不使用它,这比导入标记库更干净,它的语法(如
gt

)很难理解。我只想注意,如果需要获得大小来确定集合是否为非空,那么“空”就可以了运算符很有用,因为它还检查null。我同意这里的Mark。为什么要为一个标签导入更多的垃圾?用马克的溶液,它更干净。同意-空的更干净@Joel应该发布一个完整的答案,这样它就可以被投票接受。我们这里的很多人(我)都是非jsp程序员,他们复制/粘贴来自Google的代码片段,因此除了我们看到的第一段代码之外,没有太多考虑。OP询问的是检查大小,而不一定是检查它是否为空,我的回答还允许考虑更复杂的场景,并提供完整的标记库。谢谢,伙计。这真的很有帮助,因为我只想在列表大小超过一个时显示列表。
<... xmlns:fn="http://java.sun.com/jsp/jstl/functions">
<p>The length of the companies collection is: ${fn:length(companies)}</p>
<c:if test="${fn:length(companies) gt 0}">

</c:if>
<c:if test="${not empty companies}">

</c:if>
${fn:length(numList)}
${empty companies}