Freemarker自定义分页工具类
2015-11-29 16:27
405 查看
[#--分页思路1 每页显示固定的页数 尽量保持当前页在显示的中央部位 1. 如果当前页号小于或者等于页面要显示的页数的一半 则按照以下算法计算显示 如果总页数小于或者等于页面要显示的页数 则从第一页显示到总页数(最后一页) 如果总页数大于页面要显示的页数 则从第一页显示到页面要显示的页数 2. 如果当前页号大于页面要显示的页数的一半,则按照以下算法计算显示 如果总页数小于或者等于(当前页 + 页面要显示的页数的一半) 则从(当前页号-页面要显示的页数的一半) 显示到 总页数 如果总页数大于(当前页 + 页面要显示的页数的一半) 则从(当前页号-页面要显示的页数的一半) 显示到 (当前页数号+页面要显示的页数的一半) --] [#macro pager url totalPage curPage=1 class="" showPageNum=5] [#local halfPage=(showPageNum/2)?int/] [@showFirstPage url=url class=class curPage=1 /] [#if (curPage > 1)] [@showPrePage url=url class=class curPage=curPage-1 /] [/#if] [#if (halfPage>=curPage)] [#if (showPageNum >= totalPage)] [@showPage start=1 end=totalPage url=url class=class curPage=curPage/] [#else] [@showPage start=1 end=showPageNum url=url class=class curPage=curPage /] [/#if] [#else] [#if (curPage+halfPage>totalPage)] [@showPage start=(curPage-halfPage) end=totalPage url=url class=class curPage=curPage/] [#else] [@showPage start=(curPage-halfPage) end=curPage+halfPage url=url class=class curPage=curPage/] [/#if] [/#if] [#if (totalPage > curPage)] [@showNextPage url=url class=class curPage=(curPage+1) /] [/#if] [@showLastPage url=url class=class curPage=totalPage /] 共[${totalPage}]页 [/#macro] [#macro showPage start end url class curPage] [#list start..end as page] [#if curPage==page] [${page}] [#else] <a href="${url}&pageIndex=${page}" class="${class}">${page}</a> [/#if] [/#list] [/#macro] [#--显示首页--] [#macro showFirstPage url class curPage] <a href="${url}&pageIndex=${curPage}" class="${class}">首页</a> [/#macro] [#--显示上一页--] [#macro showPrePage url class curPage] <a href="${url}&pageIndex=${curPage}" class="${class}">上一页</a> [/#macro] [#--显示下一页--] [#macro showNextPage url class curPage] <a href="${url}&pageIndex=${curPage}" class="${class}">下一页</a> [/#macro] [#--显示尾页--] [#macro showLastPage url class curPage] <a href="${url}&pageIndex=${curPage}" class="${class}">尾页</a> [/#macro] [#---------------------------------------------------------------------------------------------] [#-- 分页思路2 每页显示固定的页数 尽量保持当前页在显示的中央部位 1. 如果总页数小于等于页面要显示的页数 则从第一页显示到总页数(最后一页) 2. 如果总页数大于页面要显示的页数 则按照一下算法显示 如果当前页数小于等于要页面显示的页数的一半 则从第一页显示到 页面要显示的页数个页 如果当前页数大于要显示的页数的一半 则从 (当前页数-页面要显示的页数的一半) 显示到(当前页数+要显示的页数的一半)处 --] [#macro new_pager url totalPage curPage=1 class="" showPageNum=5] [#local halfPage=(showPageNum/2)?int/] [@showFirstPage url=url class=class curPage=1 /] [#if (curPage > 1)] [@showPrePage url=url class=class curPage=curPage-1 /] [/#if] [#----显示中间页面 start---] [#if (showPageNum>=totalPage)] [@showPage start=1 end=totalPage url=url class=class curPage=curPage/] [#else] [#if (halfPage>=curPage)] [@showPage start=1 end=showPageNum url=url class=class curPage=curPage/] [#else] [@showPage start=(curPage-halfPage) end=curPage+halfPage url=url class=class curPage=curPage/] [/#if] [/#if] [#----显示中间页面 end---] [#if (totalPage > curPage)] [@showNextPage url=url class=class curPage=(curPage+1) /] [/#if] [@showLastPage url=url class=class curPage=totalPage /] 共[${totalPage}]页 [/#macro]
相关文章推荐
- Content Provider之MIME类型
- 第三届开源操作系统年度技术年会 --- 资料下载
- PetaPoco dynamic
- Content Provider之MIME类型
- Partition Array
- 短信验证码
- Android之Context、this
- HDU-计算机学院大学生程序设计竞赛(2015’11)1002 投币洗衣机(模拟)
- iOS MKMapView 地图视图
- Java 8中处理日期和时间
- 第四章 值和单位 之 WEB安全色
- Android之Context、this
- 计算器简单封装和ASP.net
- 我看Java虚拟机(4)---Javac编译器
- Android开发Service
- Maven的安装及配置
- OPEN CASCADE Multiple Variable Function
- 使用UMeditor富文本编辑器上传图片
- Android开发Service
- 1076: [SCOI2008]奖励关