上文《JSP表格模板升级(3)--可变列数的表格模板》已经完成了一个功能几近完善的表格模板,直接可以用于大部分二维表格的显示需求。本文中我们将改变表格底层的实现,将table标签替换为更加灵活的div+css。关于两种实现形式孰优孰劣目前尚无绝对的说法,而灵活性方面,显然是div+css的方式更胜一筹,例如本文将实现一个固定表头和表尾的表格模板。
数据结构部分依然不变,主要的变化是展示层的,jsp中表格的定义如下所示,其中list存储类型为KeyValueListBean(定义见上文)的一组数据:
<div class="myTable">
<div>
<div class="tr">
<div class="td th"> </div>
<c:forEach items="${list[0].value}" var="ch">
<div class="td th">${ch}</div>
</c:forEach>
</div>
</div>
<div class="body">
<c:forEach items="${list}" var="row"varStatus="status" begin="1"end="${fn:length(list)-2}">
<div class="tr ${status.index%2== 0?'odd':'even'}">
<div class="td">${row.key}</div>
<c:forEach items="${row.value}" var="col">
<div class="td">${col}</div>
</c:forEach>
</div>
</c:forEach>
</div>
<div>
<c:forEach items="${list}" var="row"begin="${fn:length(list)-1}">
<div class="tr">
<div class="