如何实现一个通用的Java分页基类

发布时间:2021-07-22 11:33:51 作者:小新
来源:亿速云 阅读:108

这篇文章给大家分享的是有关如何实现一个通用的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%>" 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>

感谢各位的阅读!关于“如何实现一个通用的Java分页基类”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

推荐阅读:
  1. 虚基类
  2. 不是抽象类的基类不是好基类

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

java

上一篇:Spring Data JPA分页复合查询的示例分析

下一篇:Angular2如何自定义分页组件

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》