list转page对象实现分页查询

首先需要写一个PageBean对象,下面代码可直接复制。

PageBean.java

package com.hedong.page;

import java.util.List;
/**
 * 分页实体类
 * @author Peng
 * @Date2020年2月3日 上午9:40:10
 */
public class PageBean<T> {
 
	private int currPage;//当前页数
    private int pageSize;//每页显示的记录数
    private int totalCount;//总记录数
    private int totalPage;//总页数
    private List<T> lists;//每页的显示的数据
	
	public PageBean() {
		super();
	}
 
	public int getCurrPage() {
		return currPage;
	}
 
	public void setCurrPage(int currPage) {
		this.currPage = currPage;
	}
 
	public int getPageSize() {
		return pageSize;
	}
 
	public void setPageSize(int pageSize) {
		this.pageSize = pageSize;
	}
 
	public int getTotalCount() {
		return totalCount;
	}
 
	public void setTotalCount(int totalCount) {
		this.totalCount = totalCount;
	}
 
	public int getTotalPage() {
		return totalPage;
	}
 
	public void setTotalPage(int totalPage) {
		this.totalPage = totalPage;
	}
 
	public List<T> getLists() {
		return lists;
	}
 
	public void setLists(List<T> lists) {
		this.lists = lists;
	}
	
}

下面是一个将list转为pagebean对象的方法,参数为当前页数:currentPage,每页数据数目:pageSize,需要分页的list:list。

		//将list转page
		public static <T> PageBean<T> listTopage(int currentPage,int pageSize,List<T> list){
				//页面对象
				PageBean<T> pageBean = new PageBean<T>();
				
				//封装当前页数
				pageBean.setCurrPage(currentPage);
				
				//每页显示的数据数目
				pageBean.setPageSize(pageSize);
				
				//封装总记录数
				int totalCount = list.size();
				pageBean.setTotalCount(totalCount);
				
				//封装总页数
				double tc = totalCount;
				Double num=Math.ceil(tc/pageSize);//向上取整
				pageBean.setTotalPage(num.intValue());
				
				//封装该页list
				int start=(currentPage-1)*pageSize;
				if (start + pageSize > totalCount)
					pageBean.setLists(list.subList(start, totalCount));
				else
					pageBean.setLists(list.subList(start, start + pageSize));
				return pageBean;
		}

然后就可以在条件查询需要的list之后调用该方法获得一个PageBean对象,该对象中就包含了这一页的所有信息,可传到前端进行展示

后端:

		//留言翻页
		@RequestMapping("/turnPage")
		@ResponseBody
		public String toturnPage(HttpServletRequest request,HttpServletResponse response,Model model) {
	
			String successCode="1";
			int currentPage=Integer.parseInt(request.getParameter("currentPage"));
			int goodsid=Integer.parseInt(request.getParameter("goodsid"));
			
			//获取评论
			CommentExample commentExample=new CommentExample();
			com.hedong.pojo.CommentExample.Criteria criteria=commentExample.createCriteria();
			criteria.andGoodsidEqualTo(goodsid);
			List<Comment> comments=commentService.selectComment(commentExample);
			
			//将评论分页
			PageBean<Comment> pagemsg=OperateController.listTopage(currentPage,1,comments);
			request.getSession().setAttribute("pagemsg", pagemsg);
			return successCode;
		}

前端:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@page import="com.hedong.pojo.User"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>商品详情</title>
</head>
	<body style="background-color: white;">
		<div style="text-align: center;">
			<table style="margin-top: 20px;border-collapse: collapse;" >
			    <c:forEach var="n" items="${pagemsg.lists}">
			        <tr style="text-align: center;  border: 1px solid #e5e5e5;">
			        	<td width="10%"><img src="${n.getHeadpath() }" height="50" width="50" style="margin-top: 10px;margin-bottom: 10px;"/></td>
			        	<td width="70%">${n.getContent() }</td>
			            <td width="10%">${n.getUsername() }</td>
			            <td width="10%">${n.getCommenttime() }</td>
			        </tr>
		        </c:forEach>
		    </table>
		    
		    
		    <table  border="0" cellspacing="0" cellpadding="0"  width="900px">
				<tr>		 
					<td class="td2">
					   <span>第${pagemsg.currPage }/ ${pagemsg.totalPage}页</span>  
					   <span>总记录数:${pagemsg.totalCount }  每页显示:${pagemsg.pageSize}</span>  
					   <span>
					       <c:if test="${pagemsg.currPage != 1}">
					           <a οnclick="turnPage(1,'${specificGoods.getGoodsid() }')">[首页]</a>  
					           <a οnclick="turnPage('${pagemsg.currPage-1}','${specificGoods.getGoodsid() }')" >[上一页]</a>   
					       </c:if>
					       
					       <c:if test="${pagemsg.currPage != pagemsg.totalPage}">
					           <a οnclick="turnPage('${pagemsg.currPage+1}','${specificGoods.getGoodsid() }')" >[下一页]</a>  
					           <a οnclick="turnPage('${pagemsg.totalPage}','${specificGoods.getGoodsid() }')">[尾页]</a>  
					       </c:if>
					   </span>
					</td>
				</tr>
			</table>

		</div>
	</body>
</html>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章