1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
[#--分页思路
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]
|
本文转自arac 51CTO博客,原文链接:http://blog.51cto.com/skyarac/1717927,如需转载请自行联系原作者