码迷,mamicode.com
首页 > 其他好文 > 详细

Freemarker自定义分页工具类

时间:2015-11-29 19:44:15      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:freemarker分页工具类

[#--分页思路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]


本文出自 “skyarac” 博客,请务必保留此出处http://skyarac.blog.51cto.com/5324985/1717927

Freemarker自定义分页工具类

标签:freemarker分页工具类

原文地址:http://skyarac.blog.51cto.com/5324985/1717927

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!