ssm分页实战

1. 插件

1. maven

    <!-- 分页插件 -->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>5.2.0</version>
        </dependency>

 3. mybaits核心配置文件中或spring配置文件中设置plugins

mybatis-config.xml

    <plugins>
        <!-- 设置分页插件 -->
        <plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin>
    </plugins>

springxml

<!--     设置分页插件-->
        <property name="plugins">
            <array>
                <bean class="com.github.pagehelper.PageInterceptor"></bean>
            </array>
        </property>

2. 后端

1. service层

 PageHelper.startPage(pageNum, 3);开启分页pageNum当前页 ,3 每页数据数

 List<Emp> empsList = empMapper.getEmpsList();获取全部list

 PageInfo<Emp> page = new PageInfo<>(empsList, 3);分页相关数据,3 导航页码数

    @Override
    public PageInfo<Emp> getEmpPage(Integer pageNum) {
        PageHelper.startPage(pageNum, 3);
        List<Emp> empsList = empMapper.getEmpsList();
        //获取分页相关数据
        PageInfo<Emp> page = new PageInfo<>(empsList, 3);
        return page;
    }

2. controller层

路径: @RequestMapping(value = "emplist/page/{pageNum}")pageNum当前页是从前端传过来的。

 PageInfo<Emp> pageInfo = empService.getEmpPage(pageNum);获取分页相关信息

包括:分页相关信息以及数据库数据,通过model传到前端

PageInfo{

        pageNum=1, pageSize=3, size=3, startRow=1, endRow=3, total=18, pages=6,

        list=Page {

                        count=true, pageNum=1, pageSize=3, startRow=0, endRow=3, total=18,                        pages=6, reasonable=false, pageSizeZero=false

                        }

         [

                Emp(empId=1, empName=张三, age=12,  gender=男, email=1),

                Emp(empId=2, empName=李四, age=34, gender=男, email=2),        

                Emp(empId=4, empName=张涛, age=24, gender=男, email=2)],

        prePage=0, nextPage=2, isFirstPage=true, isLastPage=false, hasPreviousPage=false,         hasNextPage=true, navigatePages=3, navigateFirstPage=1, navigateLastPage=3,         navigatepageNums=[1, 2, 3]

}

    /**
     *
     * 分页查询
     */

    @RequestMapping(value = "emplist/page/{pageNum}" , method = RequestMethod.GET)
    public String getEmpByPageNum(@PathVariable("pageNum")Integer pageNum, Model model){

        PageInfo<Emp> pageInfo = empService.getEmpPage(pageNum);

        model.addAttribute("page", pageInfo);

        System.out.println(pageInfo);
        return "emplist";
    }

3. 前端

实现效果

首页pageNum=1

非首页、末页

末页

 

实现代码:
注意路径拼接和导航页码判断

    <a th:if="${page.hasPreviousPage}" th:href="@{/emplist/page/1}">首页</a>
<!--   model里的数据拼接到路径中 路径拼接-->
    <a th:if="${page.hasPreviousPage}" th:href="@{'/emplist/page/'+${page.prePage}}">上一页</a>

    <span th:each="nn:${page.navigatepageNums}">
        <a th:if="${page.pageNum == nn}" style="color: red;" th:href="@{'/emplist/page/'+${nn}}" th:text="'['+${nn}+']'"></a>
        <a th:if="${page.pageNum != nn}"  th:href="@{'/emplist/page/'+${nn}}" th:text="${nn}"></a>
    </span>
    <a th:if="${page.hasNextPage}" th:href="@{'/emplist/page/'+${page.nextPage}}">下一页</a>
    <a th:if="${page.hasNextPage}" th:href="@{'/emplist/page/'+${page.pages}}">末页</a>

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值