本文實例為大家分享了Java實現分頁功能的具體代碼,供大家參考,具體內容如下
不用根據改變SQL的形式去查詢;
直接查詢所有的數據,根據頁碼自動顯示數據;
分頁對象
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 ; //每頁顯示記錄數 private long firstResult= 0 ; //當頁第一條記錄號 private long totalCount; //總記錄數 private long totalPage; //總頁碼 private long pageNo= 1 ; //當前頁碼 private List<?> sumData; //此集合可用來保存 合計數據 private List<?> data; //查詢結果 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; } } |
查詢的數據實體
在查詢的實體里添加頁碼和每頁顯示條數參數;
1
2
3
4
5
6
7
8
|
private int pageSize; //每頁顯示的條數 private int pageNo; //當前頁碼 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:傳入的參數為對象 PageUtils page= new PageUtils(); //如果傳入的當前條數為0,則賦予值(首次查詢不帶參); if (input.getPageSize()== 0 ){ //當前頁碼第一頁 input.setPageNo( 1 ); //每頁顯示條數,當前每頁顯示10條數據; 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
|
//循環穿過來的PAGE.data數據 < tr th:each = "ts : ${page.data}" > < td th:text = "${ts.channelValueName}" ></ td > ---------- < form id = "content_form" action = "/channelValue/list" method = "post" > < div > 總數:< 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 > |
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。