前些天在进行成绩排名的时候,用到了这个小技巧。直接在html代码中用el表达式就可以实现数据排序的功能,第一次写博客,还请多指教。。
成绩排名先要将数据按照正序的方式拿出来:
select * from table where 1 = 1 order by score desc;
然后就是用<c:foreach>
将数据遍历,同时加入EL表达式来显示排名:
<c:set var="number" value="1"></c:set>
<c:foreach item="${array }" var="data">
<span>名次:</span>${number }
<span>成绩:</span>${data.score }
<c:set var="number" value="${number+1 }"></c:set>
</c:foreach>
代码是用<c:set>
来进行数据number
的定义和运算,如果是分页数据只需要将${number }
替换成${number+(currentPage-1) }
即可。其中currentPage
是当前页的页码。
如果大神有更好的方法,或者此方法有缺陷,欢迎留言指点!