资讯专栏INFORMATION COLUMN

分页

BDEEFE / 3034人阅读

摘要:配置无当前页总页数每页记录大小总记录查询结果集当前页总记录数每页记录数设置值查询结果当前共条记录首页上一页总页不超过头溢出尾溢出循环遍历页码列表下一页尾页运行结果为去写我要显示页总记录数总页数首页头溢出尾溢出尾页

ssm配置无

StudentMapper.java

public interface StudentMapper {
    int queryCount();
    List queryAll(HashMap map);
}

StudentMapper.xml


    
    

Student.java

public class Student {
    package cn.scitc.pojo;

import java.util.Date;

public class Student {
    private Integer id;
    private  String name;
    private Date birthday;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Date getBirthday() {
        return birthday;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }
}

}

PageBean.java

package cn.scitc.pojo;

import java.util.List;

public class PageBean {
    private int currPage; //当前页
    //    private int totalPage;//总页数
    private int pageSize;//每页记录大小
    private int totalCount;//总记录
    private List pageBean;//查询结果集

    public int getCurrPage() {
        return currPage;
    }

    public void setCurrPage(int currPage) {
        this.currPage = currPage;
    }

    public int getTotalPage() {
        int totalPage = totalCount / pageSize;
        return totalCount % pageSize == 0 ? totalPage : totalPage + 1;
    }

//    public void setTotalPage(int totalPage) {
//        this.totalPage = totalPage;
//    }

    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 List getPageBean() {
        return pageBean;
    }

    public void setPageBean(List pageBean) {
        this.pageBean = pageBean;
    }
}

StudentService.java

public interface StudentService {
    PageBean queryAll(Integer currPage);
}

StudentServiceImpl.java

@Service
public class StudentServiceImpl implements StudentService {
    @Autowired
    private StudentMapper studentMapper;
    @Override
    public PageBean queryAll(Integer currPage) {
        HashMap map = new HashMap<>();
       PageBean pageBean = new PageBean<>();
       //当前页
        pageBean.setCurrPage(currPage);
        //总记录数
        int totalCount = studentMapper.queryCount();
        pageBean.setTotalCount(totalCount);
        //每页记录数
        int pageSize = 5;
        pageBean.setPageSize(pageSize);

        //map设置值
        map.put("start",(currPage -1) * pageSize );
        map.put("size",pageBean.getPageSize());
        //查询结果
        List studentList = studentMapper.queryAll(map);
        pageBean.setPageBean(studentList);
        return pageBean;
    }
}

StudentController.java

@Controller
public class StudentController {
    @Autowired
    private StudentService studentService;
    @RequestMapping("/query")
    public String query(@RequestParam(value = "currPage",defaultValue = "1") Integer currpage, Model model){
        model.addAttribute("pageBean",studentService.queryAll(currpage));
        return "student";
    }
}

student.jsp

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt_rt" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title



        
id: name: birthday:
当前${pageBean.currPage}/${pageBean.totalPage} 共${pageBean.totalCount}条记录 ">[首页] ">上一页 <%--总页不超过10--%> <%--头溢出--%> <%--尾溢出--%> <%-- 循环遍历页码列表 --%> [${i}] ">${i} ">下一页 ">[尾页]

运行结果为:

js去写

         //我要显示5页
            // 1 2 [3] 4 5
            //总记录数
            var recordCount = data.data.articleCount;
            //总页数
            var pageCount = Math.ceil(recordCount / pageSize);
            if (pageIndex != 1) {
                var indexPageHtml =
                    ``
                    + ``
                    + ``
                    + `首页`;
                $(".nav-links").append(indexPageHtml);
            }
            if (pageCount < 5) {
                var begin = 1;
                var end = pageCount;
            } else {
                var begin = (pageIndex - 3);
                var end = (pageIndex + 1);
                //头溢出
                if (begin < 1) {
                    begin = 1;
                    end = 5;
                }
                //尾溢出
                if (end > pageCount) {
                    begin = pageCount - 4;
                    end = pageCount;
                }
            }
            console.log("begin:" + begin);
            console.log("end:" + end);
            for (var i = begin; i <= end; i++) {
                if (i == pageIndex) {
                    $(".nav-links").append(`${i}`);
                } else {
                    $(".nav-links").append(`${i}`);
                }
            }

            if (pageIndex != pageCount) {
                var lastPageHtml =
                    `尾页`
                    + ``
                    + ``
                    + ``
                $(".nav-links").append(lastPageHtml);
            }
        }

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/77711.html

相关文章

  • Laravel自定义分页样式

    摘要:的分页组件默认为的分页样式,但如果我们用的并不是或者说分页的结构不一样,这时我们需要自定义分页。进一步,可以看到通过继承并对方法进行重写,由此可见,我们可以通过继承类并对方法进行重写,就可以自定义分页的样式了。         Laravel 的分页组件默认为 Bootstrap 的分页样式,但如果我们用的并不是 Bootstrap 或者说分页的 HTML结构不一样,这时我们需要自定义...

    Lionad-Morotar 评论0 收藏0
  • 小程序分页实践:编写可复用分页组件

    摘要:项目中遇到切换列表,每个都需要分页的需求,分页流程具有相似性,于是想将分页封装为组件,方便应用。组件的复用完成了以上组件,在对其他分页的页面,可以直接复用。 项目中遇到 tab切换列表,每个tab都需要分页的需求,分页流程具有相似性,于是想将分页封装为组件,方便应用。 组件的应用已写成一个小demo,效果如下图所示(数据用mock模拟): showImg(https://segment...

    crelaber 评论0 收藏0
  • laravel手动创建数组分页

    摘要:目前,无法高效执行使用语句的分页操作。如果你需要在分页结果集中使用,建议你查询数据库并手动创建分页器。手动创建分页如果你想手动创建分页实例并且最终得到一个数组类型的结果,可以根据需求来创建或者实例来实现。 showImg(https://segmentfault.com/img/bVbbGos?w=640&h=400); laravel分页功能: 有几种方法可以对数据进行分页。最简单的...

    acrazing 评论0 收藏0
  • AngularJS 前台分页实现

    摘要:分页思路考评员查询,因为整体的数据量比较小,所以我们可以将分页放到前台进行处理。公共方法这是最后实现的中的公共方法。对数据进行分割,数据应该是从到,加上就是之前的页数中的数据量。 分页思路 考评员查询,因为整体的数据量比较小,所以我们可以将分页放到前台进行处理。 其实分页的原理也很简单,我们根据分页选择的页码数和每页数据条数决定当前显示的是数组中的第多少项到多少项,然后再构造分页的参数...

    YuboonaZhang 评论0 收藏0
  • 从 PageHelper 学到的不侵入 Signature 的 AOP

    摘要:从学到的不侵入的前言最近搭新项目框架,之前的拦截器都是自己写的,一般是有个类型做判断是否增加分页。发现开源项目不需要侵入方法的就可以做分页,特此来源码分析一下。 从 PageHelper 学到的不侵入 Signature 的 AOP 前言 最近搭新项目框架,之前 Mybatis 的拦截器都是自己写的,一般是有个 Page 类型做判断是否增加分页 sql。但是这样同样的业务开放给页面和 ...

    trigkit4 评论0 收藏0
  • thinkphp分页bug--解决thinkphp分页乱码问题

    摘要:本文就这一问题给出解决方案。具体修改的代码是在分页类文件的最后加上一个自定义函数,用于替换中的参数分隔符号,函数内容如下自学博客修改最终生成的在文件的第行,将原来的修改为生成标准的经过这两步修改就可以解决分页乱码的问题了。 thinkphp自带的分页类存在bug,例如当我们搜索关键词时,关键词为中文,第二次点击分页的时候,就会乱码,不能正常的显示我们需要的页码。本文就这一问题给出解决方...

    Jrain 评论0 收藏0

发表评论

0条评论

BDEEFE

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<