一个通用的Java分页基类

2021-09-23 14:09:03 浏览数 (1)

分页的基类

代码语言:javascript复制
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>

0 人点赞