这次给大家分享一个小知识点——利用JSTL标签库中的functions标签来获取集合长度。
一、首先在jsp页面导入JSTL的core标签和functions标签
1 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
2 <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
二、用<c:forEach>标签来遍历集合
1 <c:forEach items="${userList}" var="user" >
2 <h3>${fn:length(userList)}</h3>
3 </c:forEach>
这样通过${fn:length()}就可以很轻松的获取到userList集合的长度啦!
三、利用<c:forEach>标签中集合的长度来进行判断操作
1 <c:forEach items="${userList}" var="user" varStatus="vs"> 2 <c:if test="${(fn:length(userList)) > 1}"> 3 <span>用户${vs.count}</span> 4 </c:if> 5 <c:if test="${(fn:length(userList)) == 1}"> 6 <span>用户</span> 7 </c:if>
8 </c:forEach>
以上代码的结果为:
①当用户集合userList长度大于1时,则用户后面拼接这次迭代从1开始的迭代计数。
如userList的长度为3时,则显示成 :用户1 用户2 用户3;
②当用户集合userList长度等于1时,则直接显示为“用户”。
四、<c:forEach>标签中的小知识点总结:
①current:当前这次迭代的(集合中的)项。
②index:当前这次迭代从0开始的迭代索引。
③count:当前这次迭代从1开始的迭代计数。
④first:用来表明当前这轮迭代是否为第一次迭代,该属性为boolean类型。
⑤last:用来表明当前这轮迭代是否为最后一次迭代,该属性为boolean类型。
⑥begin:begin属性的值。
⑦end:end属性的值。
⑧step:step属性的值。