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

本文介绍了如何使用JSTL标签库的<c:forEach>和<c:if>来动态显示从数据库获取的数据。博主通过设置每五行换行的方式,在JSP页面上以表格形式展示List集合中的批量数据,详细解释了这两个标签的用法及其参数含义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前天想要完成一个功能,要求是:将从数据库中获取到的批量数据放入到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个数据的显示。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值