本文實例為大家分享了Java實現(xiàn)分頁功能的具體代碼,供大家參考,具體內(nèi)容如下
不用根據(jù)改變SQL的形式去查詢;
直接查詢所有的數(shù)據(jù),根據(jù)頁碼自動顯示數(shù)據(jù);
分頁對象
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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
|
public class PageUtils implements Serializable { /** * */ private static final long serialVersionUID = -5247614532234782640L; public final static String PAGE = "page" ; public final static String PAGE_NO = "pageno" ; public final static String PAGE_SIZE = "pagesize" ; private long pageSize= 10 ; //每頁顯示記錄數(shù) private long firstResult= 0 ; //當(dāng)頁第一條記錄號 private long totalCount; //總記錄數(shù) private long totalPage; //總頁碼 private long pageNo= 1 ; //當(dāng)前頁碼 private List<?> sumData; //此集合可用來保存 合計數(shù)據(jù) private List<?> data; //查詢結(jié)果 public long getPageSize() { return pageSize; } public void setPageSize( long pageSize) { this .pageSize = pageSize; } public long getFirstResult() { if (pageNo> 0 ){ firstResult=pageSize * (pageNo - 1 ); } else { firstResult = 0 ; } return firstResult; } public long getNextPageResult(){ if (pageNo> 0 ){ return pageSize*(pageNo- 1 ); } else { return pageNo; } } public void setFirstResult( long firstResult) { this .firstResult = firstResult; } public long getTotalCount() { return totalCount; } public void setTotalCount( long totalCount) { this .totalCount = totalCount; totalPage = this .totalCount/pageSize; if (totalPage == 0 || totalCount % pageSize != 0 ) { totalPage++; } } public long getTotalPage() { return totalPage; } public void setTotalPage( long totalPage) { this .totalPage = totalPage; } public long getPageNo() { return pageNo; } public void setPageNo( long pageNo) { this .pageNo = pageNo; } public List<?> getData() { return data; } public void setData(List<?> data) { this .data = data; } /** * 是否第一頁 */ public boolean isFirstPage() { return pageNo <= 1 ; } /** * 是否最后一頁 */ public boolean isLastPage() { return pageNo >= getTotalPage(); } /** * 下一頁頁碼 */ public long getNextPage() { if (isLastPage()) { return pageNo; } else { return pageNo + 1 ; } } /** * 上一頁頁碼 */ public long getPrePage() { if (isFirstPage()) { return pageNo; } else { return pageNo - 1 ; } } public PageUtils(){} public PageUtils( long pageNo){ this .pageNo=pageNo; } public PageUtils( long pageNo, long pageSize){ this .pageNo=pageNo; this .pageSize = pageSize; } public List<?> getSumData() { return sumData; } public void setSumData(List<?> sumData) { this .sumData = sumData; } } |
查詢的數(shù)據(jù)實體
在查詢的實體里添加頁碼和每頁顯示條數(shù)參數(shù);
1
2
3
4
5
6
7
8
|
private int pageSize; //每頁顯示的條數(shù) private int pageNo; //當(dāng)前頁碼 public int getPageSize() { return pageSize; } public void setPageSize( int pageSize) { this .pageSize = pageSize; } |
控制層Controller
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
|
@RequestMapping ( "/list" ) public String list(Model model,ChannelValueInfoView input) { // input:傳入的參數(shù)為對象 PageUtils page= new PageUtils(); //如果傳入的當(dāng)前條數(shù)為0,則賦予值(首次查詢不帶參); if (input.getPageSize()== 0 ){ //當(dāng)前頁碼第一頁 input.setPageNo( 1 ); //每頁顯示條數(shù),當(dāng)前每頁顯示10條數(shù)據(jù); input.setPageSize( 10 ); } page.setPageNo(input.getPageNo()); page.setPageSize(input.getPageSize()); //核心分頁代碼 PageHelper p= new PageHelper(); Page<ChannelValueInfoList> l=p.startPage(input.getPageNo(),input.getPageSize()); //緊跟著的第一個select查詢將會被分頁 channelValueService.getChannelValueInfoViewList(input); model.addAttribute( "input" , input); page.setData(l); page.setTotalCount(l.getTotal()); model.addAttribute( "page" , page); return "index" ; } |
頁面處理
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
|
//循環(huán)穿過來的PAGE.data數(shù)據(jù) < tr th:each = "ts : ${page.data}" > < td th:text = "${ts.channelValueName}" ></ td > ---------- < form id = "content_form" action = "/channelValue/list" method = "post" > < div > 總數(shù):< span id = "totalCount" th:text = "${page.totalCount}" >0</ span > </ div > < ul class = "pagination" > < li class = "disabled" > < a href = "#" rel = "external nofollow" rel = "external nofollow" rel = "external nofollow" rel = "external nofollow" rel = "external nofollow" onclick = "onFirst()" >首頁</ a > </ li > < li class = "disabled" > < a href = "#" rel = "external nofollow" rel = "external nofollow" rel = "external nofollow" rel = "external nofollow" rel = "external nofollow" onclick = "onPre()" ><</ a > </ li > < li class = "active" > < a href = "#" rel = "external nofollow" rel = "external nofollow" rel = "external nofollow" rel = "external nofollow" rel = "external nofollow" > < span id = "beginRow" th:text = "${page.pageNo}" >0</ span > </ a > </ li > < li class = "disabled" > < a href = "#" rel = "external nofollow" rel = "external nofollow" rel = "external nofollow" rel = "external nofollow" rel = "external nofollow" onclick = "onNext()" >></ a > </ li > < li class = "disabled" > < a href = "#" rel = "external nofollow" rel = "external nofollow" rel = "external nofollow" rel = "external nofollow" rel = "external nofollow" onclick = "onLast()" >尾頁</ a > </ li > </ ul > </ for m> ---------- < script > function onFirst() { onList(1); } function onPre() { var beginRow = parseInt($('#beginRow').html()); if (beginRow - 1 > 0) { onList(beginRow - 1); } } function onNext() { var beginRow = parseInt($('#beginRow').html()); var totalCount = parseInt($('#totalCount').html()); var pageSize = parseInt($('#pageSize').val()); if (parseInt(totalCount / pageSize + 1) > beginRow + 1) { onList(beginRow+1); } } function onLast() { var totalCount = parseInt($('#totalCount').html()); var pageSize = parseInt($('#pageSize').val()); onList(parseInt(totalCount / pageSize + 1) - 1); } function onList(pageNo) { if (pageNo == 0) pageNo = 1; $('#pageNo').val(pageNo); $("#content_form").submit(); } </ script > |
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。