1. 一:编写实体类
    @Setter
    @Getter
    @ToString
    @Entity
    @Repository
    public class PageBean<T> {
    private Integer currPage;//当前页
    private Integer pageSize;//每页条数
    private Integer totalCount;//总条数
    private Integer totalPage;//总页数
    private List<T> list;//当前页数据
    }
    二:编写dao层,写sql语句(mysql
  1. //查询总条数
    @Select("select count(1) from product")
    public Integer findByTotalCount();
  2.  
  3. //分页查询
    @Select("select * from (SELECT *,(@rowNum:=@rowNum+1) as rowNo FROM product,(Select (@rowNum :=0) ) b) " +
    "res where rowNo>=#{param1} and rowNo<=#{param2}")
    List<Product> findByProduct(Integer start,Integer end);
    三:编写service层以及实现类
    1service
  1. public PageBean<Product> findByProduct(Integer currPage, Integer pageSize);
    2、实现类
  1. @Override
    public PageBean<Product> findByProduct(Integer currPage, Integer pageSize) {
    //1、创建PageBean对象
    PageBean<Product> pageBean = new PageBean<>();
    //2、获取当前页面(页面传参过来)
    pageBean.setCurrPage(currPage);
    //3、每页条数
    pageBean.setPageSize(pageSize);
    //4、总条数
    Integer totalCount = productDao.findByTotalCount();
    pageBean.setTotalCount(totalCount);
    //5、总页数
    double ceil = Math.ceil(totalCount * 1.0 / pageSize);
    pageBean.setTotalPage((int) ceil);
    //6、当前页面数据,从数据库查询
    int start = pageSize * (currPage - 1) + 1;
    int end = pageSize * currPage;
    List<Product> productList = productDao.findByProduct(start, end);
    pageBean.setList(productList);
    return pageBean;
    }
    四、编写控制器
  1. //分页查询
    @RequestMapping("/findByProduct")
    public ModelAndView findByProduct(@RequestParam(value = "currPage",required = false,defaultValue = "1") Integer currPage,
    @RequestParam(value = "pagesSize",required = false,defaultValue = "5") Integer pageSize){
    PageBean<Product> pageBean = new PageBean<>();
    pageBean =productService.findByProduct(currPage, pageSize);
    ModelAndView modelAndView = new ModelAndView();
    modelAndView.addObject("pageBean",pageBean);
    modelAndView.setViewName("product-list");
    return modelAndView;
    }
    五、编写web网页文件
  1. <div class="form-group form-inline">
    总共${pageBean.totalPage}页,共${pageBean.totalCount} 条数据。 每页
    <select class="form-control" id="pageSize" onchange="gotoPage(1)>
  1. <option value="2">2</option>
    <option value="3">3</option>
    <option value="5" selected="selected">5</option>
    <option value="10">10</option>
    </select>
    </div>
  1. <div class="box-tools pull-right">
    <ul class="pagination">
    <%--在超链接中访问js函数 必须添加前缀 javascript--%>
    <li><a href="javascript:gotoPage(1)" aria-label="Previous">首页</a></li>
    <li><a href="javascript:gotoPage(${pageBean.currPage-1})">上一页</a></li>
    <c:forEach begin="1" end="${pageBean.totalPage}" var="i">
    <li><a href="javascript:gotoPage(${i})">${i}</a></li>
    </c:forEach>
    <li><a href="javascript:gotoPage(${pageBean.currPage+1})">下一页</a></li>
    <li><a href="javascript:gotoPage(${pageBean.totalPage})" aria-label="Next">尾页</a></li>
    </ul>
    </div>
  1. <script type="text/javascript">
    $("#pageSize option[value=${pageBean.pageSize}]").prop("selected","selected");
    function gotoPage(currPage) {
    // 获取每页显示条数
    var pageSize = $("#pageSize").val();
    if(currPage<1){
    return;
    }
    if(currPage>${pageBean.totalPage}){
    return;
    }
    location.href="${pageContext.request.contextPath}/product/findByProduct?currPage="+currPage+"&pageSize="+pageSize
  1. ;
    }
    </script>

javaWeb手动分页步骤的更多相关文章

  1. Xamarin 手动安装步骤+破解

    原文:Xamarin 手动安装步骤+破解 由于Xamarin运行的时候有很多依赖项,所以现在在官网上下载的XamarinInstall只是一个下载安装器,并不是软件包.它会自动下载安装所需的依赖软件, ...

  2. 使用TagHelper完成分页步骤

    使用TagHelper完成分页步骤 转载 2016-08-23 11:37:33 1 创建一个MyPageOpion类,用来存储分页信息,比如当前页,栏目总数,页面大小,跳转地址(RouteUrl)等 ...

  3. 关于laravel 得手动分页问题

    一般得分页,我们只需要使用paginate方法,就可以简单得搞定.但是遇到数组得组合情况呢?这个时候,就需要我们使用自定义分页了.首先我们看下laravel得分页方法源码: #vendor/larav ...

  4. 对一个结果集(List)进行手动分页

    对一个链表List,进行手动分页,核心代码就是pagin函数: import lombok.extern.slf4j.Slf4j; import org.junit.Before; import or ...

  5. laravel带条件查询手动分页

    后台php代码: //手动分页 $users = $kaoqin; //打算输出的数组,二维 $perPage = 10; if ($request->has('page')) { $curre ...

  6. laravel二维数组手动分页显示

    示例:数组 $user 如下 $user: array (size=) 'sort' => array (size=) => float 0.028616622341171 => f ...

  7. Oracle 10g 数据库手动创建步骤

    Oracle 数据库手动创建步骤 编写初始化参数文件 设置操作系统环境变量 创建实例 以管理员身份连接数据库 启动实例 create database 创建数据库 运行数据字典脚本 Oracle的网络 ...

  8. Laravel 手动分页实现

    Laravel 手动分页实现 基于5.2版本 在开发过程中有这么一种情况,你请求Java api获取信息,由于信息较多,需要分页显示.Laravel官方提供了一个简单的方式paginate($perP ...

  9. java手动分页处理

    经常我们在操作数据库的时候都会用到分页,而且很多框架也提供了分页功能,像PageHelper. 但是在有些项目中,需要将数据查询出来进行手动分页,那么原理是什么呢? 其实很简单,首先需要知道数据总量, ...

随机推荐

  1. Jmeter系列(2)- Jmeter工具介绍、Jmeter安装目录介绍、Jmeter面板介绍

    如果你想从头学习Jmeter,可以看看这个系列的文章哦 https://www.cnblogs.com/poloyy/category/1746599.html Jmeter支持哪些测试场景? Jme ...

  2. Centos8安装docker-compose

    一.首先检查是否有pip 执行命令:piv -V 二.更新pip 执行命令:pip install --upgrade pip 三.下载  setuptools 执行命令 :pip install - ...

  3. tcpdump常用抓包命令

    主要语法 过滤主机/IP: tcpdump -i eth1 host 172.16.7.206 抓取所有经过网卡1,目的IP为172.16.7.206的网络数据   过滤端口: tcpdump -i ...

  4. java 之 javaBean

    什么是JavaBean? JavaBean是特殊的Java类,使用J ava语言书写,并且遵守JavaBean API规范. JavaBean与其它Java类相比而言独一无二的特征: 提供一个默认的无 ...

  5. java基础问题 (待解决)

    (1)接口与抽象类的区别? (2)Java中的异常有哪几类?分别怎么使用? (3)常用的集合类有哪些?比如List如何排序? (4)ArrayList和LinkedList内部的实现大致是怎样的?他们 ...

  6. composer+psr-4实现自动加载

    自动加载 对于库的自动加载信息,Composer 生成了一个 vendor/autoload.php 文件.你可以简单的引入这个文件,你会得到一个免费的自动加载支持. require 'vendor/ ...

  7. usermod,用户密码管理,mkpasswd命令

    passwd是更改用户密码的文件,如果在root下,我们可以直接输入这个命令更改密码[root@localhost ~]# passwd更改用户 root 的密码 .新的 密码:如果想更改其他用户的密 ...

  8. 数学--数论--HDU--5878 Count Two Three 2016 ACM/ICPC Asia Regional Qingdao Online 1001

    I will show you the most popular board game in the Shanghai Ingress Resistance Team. It all started ...

  9. 图论--最长路--基于SPFA的调整模板

    #include<iostream> #include<queue> #include<algorithm> #include<set> #includ ...

  10. 数学--博弈论--巴什博奕(Bash Game)

    终于也轮到我做游戏了,他们做了好几个月的游戏了. 巴什博弈: 两个人做游戏,取石子,一个人最多可以可以取M个,至少取1个,最后取完的赢. 显然,如果n=m+1,那么由于一次最多只能取m个,所以,无论先 ...