加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

一个通用的Java分页基类

发布时间:2020-12-14 23:38:59 所属栏目:Java 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 import java.util.List;/** * 分页显示的标准类,基本操作,是先给予-当前页数一共的数据条数-每页显示的条数,* 然后在初始化该类,得到总共页数,和开始

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

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

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读