分頁的基類
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
|
import java.util.List; /** * 分頁顯示的標準類,基本操作,是先給予-當前頁數一共的數據條數-每頁顯示的條數, * 然后在初始化該類,得到總共頁數,和開始序號和結束序號, * 然后數據庫分頁用到開始序號和結束序號,得到數據集合后賦值給該類的list屬性, * * 然后把該類發送到jsp頁面,進行訪問 * @author admin * * @param <T> */ public class PageBean<T> { private int pageIndex; //當前頁數 private int pageSize; //一共的頁數 private int count; //數據條數 private int pageCount; //每頁的數據條數 private int start; //起始數據位置 private int end; //結束 private List<T> list= null ; public void init(){ /*根count 和pageCount計算頁數pageSize */ int pageSize_x=( int )count/pageCount; if (count>=pageCount){ this .pageSize=count%pageCount== 0 ?pageSize_x:pageSize_x+ 1 ; } else { this .pageSize= 1 ; } //判斷頁數和當前頁數 if (pageIndex>pageSize){ pageIndex=pageSize; } if (pageIndex< 1 ){ pageIndex= 1 ; } //根據當前頁計算起始和結束條目 this .start=(pageIndex- 1 )*pageCount+ 1 ; this .end=pageIndex*pageCount; } public PageBean( int pageIndex, int count, int pageCount) { super (); this .pageIndex = pageIndex; this .count = count; this .pageCount = pageCount; } public PageBean( int pageIndex, int count, int pageCount, List<T> list) { super (); this .pageIndex = pageIndex; this .count = count; this .pageCount = pageCount; this .list = list; } public PageBean() { super (); // TODO Auto-generated constructor stub } @Override public String toString() { return "PageBean [count=" + count + ", end=" + end + ", list=" + list + ", pageCount=" + pageCount + ", pageIndex=" + pageIndex + ", pageSize=" + pageSize + ", start=" + start + "]" ; } public int getPageIndex() { return pageIndex; } public void setPageIndex( int pageIndex) { this .pageIndex = pageIndex; } public int getPageSize() { return pageSize; } public void setPageSize( int pageSize) { this .pageSize = pageSize; } public int getCount() { return count; } public void setCount( int count) { this .count = count; } public int getPageCount() { return pageCount; } public void setPageCount( int pageCount) { this .pageCount = pageCount; } public int getStart() { return start; } public void setStart( int start) { this .start = start; } public int getEnd() { return end; } public void setEnd( int end) { this .end = end; } public List<T> getList() { return list; } public void setList(List<T> list) { this .list = list; } } |
servlet調用
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
|
import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.dao.MessageDao; import com.dao.impl.MessageDaoImpl; import com.vo.Message; import com.vo.PageBean; public class ShowMessageServlet extends HttpServlet{ /** * */ private static final long serialVersionUID = 6646899131087204214L; @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding( "UTF-8" ); resp.setContentType( "text/html;charset=utf-8" ); int pageIndex= 0 ; MessageDao md= new MessageDaoImpl(); String pageIndexStr=req.getParameter( "pageIndex" ); if (pageIndexStr!= null ){ try { pageIndex=Integer.parseint(pageIndexStr); } catch (Exception e) { } } PageBean<Message> pb= new PageBean<Message>(pageIndex,md.getMessageCount(), 10 ); pb.init(); pb.setList(md.getMessageListOfPage(pb.getStart(), pb.getEnd())); req.setAttribute( "pagebean" , pb); req.getRequestDispatcher( "index.jsp" ).forward(req, resp); } } |
jsp頁面的顯示調用
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
|
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> < html > < head > < base href="<%=basePath%>" rel="external nofollow" > < title >My JSP 'index.jsp' starting page</ title > < meta http-equiv = "pragma" content = "no-cache" > < meta http-equiv = "cache-control" content = "no-cache" > < meta http-equiv = "expires" content = "0" > < meta http-equiv = "keywords" content = "keyword1,keyword2,keyword3" > < meta http-equiv = "description" content = "This is my page" > <!-- <link rel="stylesheet" type="text/css" href="styles.css" rel="external nofollow" > --> </ head > < c:if test = "${empty pagebean}" > < jsp:forward page = "showmessage" ></ jsp:forward > </ c:if > < body > < c:forEach var = "message" items = "${pagebean.list}" > ${message.title } ${message.editdate }< br /> </ c:forEach > < a href = "showmessage?pageIndex=${pagebean.pageIndex+1}" rel = "external nofollow" >下一個</ a >[${pagebean.pageIndex }< span >/</ span >${pagebean.pageSize}] </ body > </ html > |
總結
以上就是本文關于一個通用的Java分頁基類代碼詳解的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續參閱本站其他Java相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!
原文鏈接:http://www.open-open.com/code/view/1426342709482