java Page分页显示

Posted Ethon

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java Page分页显示相关的知识,希望对你有一定的参考价值。

//entity层实体类

import java.util.List;

//分页展示
//相关属性:当前页,页大小(每页显示的条数),总页数,总条数,数据
//select * from t_user limit 3,3
public class Page {
    private Integer currentPage;  //当前页
    private Integer pageSize;     //页大小
    private Integer pageCount;   //页数量
    private Integer totalCount;  //总条数
    private List<?> list;        //数据
    private String  url;         //参数路径
    public Integer getCurrentPage() {
        return currentPage;
    }
    public void setCurrentPage(Integer currentPage) {
        this.currentPage = currentPage;
    }
    public Integer getPageSize() {
        return pageSize;
    }
    public void setPageSize(Integer pageSize) {
        this.pageSize = pageSize;
    }
    public Integer getPageCount() {
        return pageCount;
    }
    public void setPageCount(Integer pageCount) {
        this.pageCount = pageCount;
    }
    public Integer getTotalCount() {
        return totalCount;
    }
    public void setTotalCount(Integer totalCount) {
        this.totalCount = totalCount;
    }
    public List<?> getList() {
        return list;
    }
    public void setList(List<?> list) {
        this.list = list;
    }
    public String getUrl() {
        return url;
    }
    public void setUrl(String url) {
        this.url = url;
    }
    
    @Override
    public String toString() {
        return "Page [currentPage=" + currentPage + ", pageSize=" + pageSize + ", pageCount=" + pageCount
                + ", totalCount=" + totalCount + ", list=" + list + ", url=" + url + "]";
    }
    
    public Page(Integer currentPage, Integer pageSize, Integer pageCount, Integer totalCount, List<?> list,
            String url) {
        this.currentPage = currentPage;
        this.pageSize = pageSize;
        this.pageCount = pageCount;
        this.totalCount = totalCount;
        this.list = list;
        this.url = url;
    }
    
    public Page() {
    }
    
    public Page(Integer currentPage, Integer pageSize) {
        this.currentPage = currentPage;
        this.pageSize = pageSize;
    }
}

 

// servlet层 (分页相关代码)
//-----直接做分页展示-----
String current = request.getParameter("currentPage"); // 获取前端传入的当前页
Page page = goodsInfoService.getPage(current); // 在业务层给page对象赋值
request.setAttribute("page", page);

 

//service层相关代码
public Page getPage(String current) {
    Integer currentPage = 1; // 默认为第一页
    Integer pageSize    = 5; // 每页显示5条记录
    if(current != null){
        currentPage = Integer.parseInt(current);
    }
    Page page = new Page(currentPage, pageSize);  //当前页和页大小的赋值
    
    Integer totalCount = goodsInfoDao.getTotalCount();
    page.setTotalCount(totalCount);  //设置总条数
    
   // 页数量==总条数/页大小--如果整除就是该值,否则+1
    Integer pageCount = totalCount/pageSize;
    pageCount=totalCount%pageSize==0?pageCount:pageCount+1;
    page.setPageCount(pageCount);   //设置页数量
    
    Integer startIndex = (currentPage-1)*pageSize; // 起始下标为(当前页-1)*页大小
    List<GoodsInfo> list = goodsInfoDao.getGoodsInfoListPage(startIndex, pageSize);
    page.setList(list);   //设置数据
    
    page.setUrl("GoodsInfoServlet?action=goodsInfoList");  //设置url
    
    return page;
}

 

//Dao相关分页代码
public int getTotalCount() { // 获取总记录数
    String sql="select count(1) from t_goods_info";
    return CommonUtils.getTotalCount(sql);
}
//jquery 相关分页代码
<a href="${page.url}&currentPage=1">首页</a>
    <c:if test="${page.currentPage!=1}">
        <a href="${page.url}&currentPage=${page.currentPage-1}">上一页</a>
    </c:if>
    <c:if test="${page.currentPage!=page.pageCount}">
        <a href="${page.url}&currentPage=${page.currentPage+1}">下一页</a>
    </c:if>
    <a href="${page.url}&currentPage=${page.pageCount}">尾页</a>
共${page.currentPage}/${page.pageCount}页

 

以上是关于java Page分页显示的主要内容,如果未能解决你的问题,请参考以下文章

springmvc 分页查询的简单实现

java分页

静态首页上的Wordpress分页始终显示相同的帖子

HTML中有没有让打印时强制分页的代码?

分页。php 引用代码

java Spring MCV sql查询结果重复