使用jstl动态的显示几行几列的数据

来源:互联网 发布:知乎提问有什么话题 编辑:程序博客网 时间:2024/04/30 03:25

前天想要完成一个功能,要求是:将从数据库中获取到的批量数据放入到List集合中,然后传送到jsp页面。jsp页面将数据以表格的形式显示在页面上,表格要求是每显示五条数据进行换行。


博主使用了JSTL标签库中<c:forEach></c:forEach>标签以及<c:if></c:if>

首先先了解一下这俩个标签

  1. <c:forEach [var="varName"] items="collection" [varStatus="varStatusName"] begin="begin" [end="end"] step="step"></c:forEach>:

            它的参数有很多:

  • var:迭代的参数的名称,在迭代体中可以使用,用来表示每一个迭代变量,类型为String 如var="item"
  • items:要进行迭代的集合,他所支持的类型包含map,iterator,list,collection,Enumeration,数组等。
  • begin:如果指定了items,那么就从item[begin]开始迭代,如果没有指定items就从begin开始迭代,类型为整数
  • end:如果指定了items,那么就从item[end]迭代结束,如果没有指定items就从end结束,类型为整数
  • step:迭代的步长
  • varStatus:迭代变量的名称,用来表示迭代的状态,可以访问到迭代自身的信息:它的属性含义如下

current:当前这次迭代的项

index:当前这次迭代 从0开始的迭代索引

count:当前这次迭代 从1开始的迭代技术

first:用来表明当前这轮迭代是否为第一次迭代的标志。

last:用来表明当前这轮迭代是否为最后一次迭代的标志。

begin:begin属性值
end:end属性值
step:step属性值


        2.<c:if test=""></c;if>:这个标签很简单就是进行判断。test中的内容为条件

有了上面的准备,下面直接代码:

<table class="download-content">        <tbody>        <c:forEach var="li" items="${content}" varStatus="num">        <c:if test="${num.count eq 1 || (num.count-1)%5 eq 0 }">        <tr>        </c:if>        <td><a href="${li.src}">${li.name}</a></td>         <c:if test="${num.count % 5 eq 0 || num.count eq 5 }">        </tr>        </c:if>        </c:forEach>       <tr><td colspan="5" id="showMuch"><a href="#">查看更多+</a></td></tr>        </tbody>        </table>

通过${content} 获得要遍历的集合,然后通过if标签进行判断。这样就实现了每行5个数据的显示。

0 0
原创粉丝点击