一個通用的Java分頁基類代碼詳解
更新時間:2017年12月20日 15:07:04 作者:wgd7
這篇文章主要介紹了一個通用的Java分頁基類代碼詳解,具有一定借鑒價值,需要的朋友可以參考下。
分頁的基類
import java.util.List; /** * 分頁顯示的標(biāo)準(zhǔn)類,基本操作,是先給予-當(dāng)前頁數(shù)一共的數(shù)據(jù)條數(shù)-每頁顯示的條數(shù), * 然后在初始化該類,得到總共頁數(shù),和開始序號和結(jié)束序號, * 然后數(shù)據(jù)庫分頁用到開始序號和結(jié)束序號,得到數(shù)據(jù)集合后賦值給該類的list屬性, * * 然后把該類發(fā)送到j(luò)sp頁面,進(jìn)行訪問 * @author admin * * @param <T> */ public class PageBean<T> { private int pageIndex; //當(dāng)前頁數(shù) private int pageSize; //一共的頁數(shù) private int count; //數(shù)據(jù)條數(shù) private int pageCount; //每頁的數(shù)據(jù)條數(shù) private int start; //起始數(shù)據(jù)位置 private int end; //結(jié)束 private List<T> list=null; public void init(){ /*根count 和pageCount計(jì)算頁數(shù)pageSize */ int pageSize_x=(int)count/pageCount; if(count>=pageCount){ this.pageSize=count%pageCount==0?pageSize_x:pageSize_x+1; } else{ this.pageSize=1; } //判斷頁數(shù)和當(dāng)前頁數(shù) if(pageIndex>pageSize){ pageIndex=pageSize; } if(pageIndex<1){ pageIndex=1; } //根據(jù)當(dāng)前頁計(jì)算起始和結(jié)束條目 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調(diào)用
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頁面的顯示調(diào)用
<%@ 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>
總結(jié)
以上就是本文關(guān)于一個通用的Java分頁基類代碼詳解的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他Java相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!
您可能感興趣的文章:
- java分頁工具類的使用方法
- Java分頁工具類及其使用(示例分享)
- 淺談java分頁三個類 PageBean ResponseUtil StringUtil
- java分頁攔截類實(shí)現(xiàn)sql自動分頁
- Java Web 簡單的分頁顯示實(shí)例代碼
- Java簡單實(shí)現(xiàn)SpringMVC+MyBatis分頁插件
- 舉例詳解用Java實(shí)現(xiàn)web分頁功能的方法
- 使用Jquery+Ajax+Json如何實(shí)現(xiàn)分頁顯示附JAVA+JQuery實(shí)現(xiàn)異步分頁
- java中利用List的subList方法實(shí)現(xiàn)對List分頁(簡單易學(xué))
- jsp+servlet+javabean實(shí)現(xiàn)數(shù)據(jù)分頁方法完整實(shí)例
- Java實(shí)現(xiàn)的分頁工具類與用法示例
相關(guān)文章
Java打印出所有的水仙花數(shù)的實(shí)現(xiàn)代碼
這篇文章主要介紹了Java打印出所有的水仙花數(shù)的實(shí)現(xiàn)代碼,需要的朋友可以參考下2017-02-02Gateway網(wǎng)關(guān)自定義攔截器的不可重復(fù)讀取數(shù)據(jù)問題
這篇文章主要介紹了Gateway網(wǎng)關(guān)自定義攔截器的不可重復(fù)讀取數(shù)據(jù)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-08-08詳談Enumeration接口和Iterator接口的區(qū)別
下面小編就為大家?guī)硪黄斦凟numeration接口和Iterator接口的區(qū)別。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-08-08