一個通用的Java分頁基類

wgd7 9年前發布 | 11K 次閱讀 Java

分頁的基類

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;
    

    }

} </pre>
servlet調用

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);
}

} </pre>
jsp頁面的顯示調用

<%@ 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&quot; prefix="c" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>">

<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">
-->

</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}">下一個</a>[${pagebean.pageIndex }<span>/</span>${pagebean.pageSize}] </body> </html> </pre>


 本文由用戶 wgd7 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!