一个通用的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; 
    } 
 
} 

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

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" 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>/${pagebean.pageSize}] 
  </body> 
</html> 

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/10156.html

(0)
上一篇 2021年7月19日 10:00
下一篇 2021年7月19日 10:01

相关推荐

发表回复

登录后才能评论