controller:

/**
 * 分页查询用户
 * @param request
 * @param response
 * @return
 * @throws Exception
 */
@RequestMapping(value="/queryList",method=RequestMethod.GET)
public String query(HttpServletRequest request,
HttpServletResponse response, 
@RequestParam(defaultValue = "1") Integer pageNum, 
@RequestParam(defaultValue = "5") Integer pageSize) throws Exception{
PageHelper.startPage(pageNum, pageSize);
List<SecUser> list =service.queryByList();
PageInfo<SecUser> pageInfo = new PageInfo<SecUser>(list);

//获得当前页
request.setAttribute("pageNum", pageInfo.getPageNum());
        //获得一页显示的条数
request.setAttribute("pageSize", pageInfo.getPageSize());
        //是否是第一页
request.setAttribute("isFirstPage", pageInfo.isIsFirstPage());
        //获得总页数
request.setAttribute("totalPages", pageInfo.getPages());
        //是否是最后一页
request.setAttribute("isLastPage", pageInfo.isIsLastPage());
//所有导航页号
request.setAttribute("naviPageNums", pageInfo.getNavigatepageNums());

request.setAttribute("list", list);
return "user/list";
}

service:

public List<SecUser> queryByList(){
return dao.queryByList();
}

dao:

public List<SecUser> queryByList();

mapper:

<select id="queryByList" resultMap="userMap" >
select 
id,
<include refid="requiredColumn" />
from 
userbase
where 
1=1
</select>

页面:

<div>
            <ul class="pagination">
                <!-- <li><a href="">&laquo;</a></li> -->
                <li>
                    <a  th:href="@{${'/user/queryList'}(pageNum=1,pageSize=${pageSize})}">首页</a>
                </li>

<li>
                    <a th:if="${not isFirstPage}" th:href="@{${'/user/queryList'}(pageNum=${pageNum-1},pageSize=${pageSize})}">上一页</a>
                    <a th:if="${isFirstPage}" href="javascript:void(0);">上一页</a>
                </li>

<li th:each="pageNo : ${naviPageNums}">
                    <a th:if="${pageNum eq pageNo}" href="javascript:void(0);">
                         <span th:text="${pageNo}"></span>
                    </a>

<a th:if="${not (pageNum eq pageNo)}" th:href="@{${'/user/queryList'}(pageNum=${pageNo},pageSize=${pageSize})}">
                        <span th:text="${pageNo}"></span>
                    </a>
                </li>
                <li>
                        <a th:if="${not isLastPage}" th:href="@{${'/user/queryList'}(pageNum=${pageNum+1},pageSize=${pageSize})}">下一页</a>
                        <a th:if="${isLastPage}" href="javascript:void(0);">下一页</a>
                 </li>
                 
                 <li>
                        <a  th:href="@{${'/user/queryList'}(pageNum=${totalPages},pageSize=${pageSize})}">尾页</a>
                 </li>

<!-- <li><a href="#">&raquo;</a></li> -->
            </ul>
        </div>

spring boot +Thymeleaf+mybatis 集成通用PageHelper,做分页的更多相关文章

  1. Spring boot+Thymeleaf+easyui集成:js创建组件页面报错

    开发工具:Ideal 使用场景:Demo 前提:       环境:Spring boot +Thymeleaf+easyui 引入thymeleaf模板引擎 <html lang=" ...

  2. spring boot 和 mybatis集成

    1.pom.xml 添加mybatis和mysql依赖 <!-- 添加 MyBatis --> <dependency> <groupId>org.mybatis. ...

  3. Spring boot 配置 mybatis xml和动态SQL 分页配置

    更新时间 2018年4月30日23:27:07 1.pom.xml <?xml version="1.0" encoding="UTF-8"?> & ...

  4. spring boot 1.4.2.RELEASE+Thymeleaf+mybatis 集成通用maper,与分页插件:

    <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot ...

  5. spring boot和mybatis集成分页插件

    MyBatis提供了拦截器接口,我们可以实现自己的拦截器,将其作为一个plugin装入到SqlSessionFactory中. 首先要说的是,Spring在依赖注入bean的时候,会把所有实现MyBa ...

  6. spring boot集成mybatis(2) - 使用pagehelper实现分页

    Spring Boot 集成教程 Spring Boot 介绍 Spring Boot 开发环境搭建(Eclipse) Spring Boot Hello World (restful接口)例子 sp ...

  7. Spring Boot 数据访问集成 MyBatis 与事物配置

    对于软件系统而言,持久化数据到数据库是至关重要的一部分.在 Java 领域,有很多的实现了数据持久化层的工具和框架(ORM).ORM 框架的本质是简化编程中操作数据库的繁琐性,比如可以根据对象生成 S ...

  8. 9、Spring Boot 2.x 集成 Thymeleaf

    1.9 Spring Boot 2.x 集成 Thymeleaf 完整源码: Spring-Boot-Demos 1.9.1 在pom中引入依赖 <dependency> <grou ...

  9. 6、Spring Boot 2.x 集成 MyBatis

    1.6 Spring Boot 2.x 集成 MyBatis 简介 详细介绍如何在Spring Boot中整合MyBatis,并通过注解方式实现映射. 完整源码: 1.6.1 创建 spring-bo ...

随机推荐

  1. RandomForestClassifier(随机森林检测每个特征的重要性及每个样例属于哪个类的概率)

    #In the next recipe, we'll look at how to tune the random forest classifier. #Let's start by importi ...

  2. Linux 2.6 中的文件锁

    简介: 本文的目的是想帮助读者理清 Linux 2.6中文件锁的概念以及 Linux 2.6 都提供了何种数据结构以及关键的系统调用来实现文件锁,从而可以帮助读者更好地使用文件锁来解决多个进程读取同一 ...

  3. Tornado模板配置

    #!/usr/bin/env python # -*- coding:utf-8 -*- #tornado模板配置 import tornado.ioloop import tornado.web c ...

  4. 正则表达式计算 origin = "1 - 2 * ( ( 60 - 30 + ( -40.0 / 5 ) * ( 9 - 2 * 5 / 3 + 7 / 3 * 99 / 4 * 2998 + 10 * 568 / 14 )) - ( - 4 * 3 ) / ( 16 - 3 * 2))"

    #!/usr/bin/env python import re def f1(arg): return 1 origin = "1 - 2 * ( ( 60 - 30 + ( -40.0 / ...

  5. 关于android中出现failed to read row 0,column -1错误

    该错误出现的原因是Cursor.getColumnIndex()的参数列名不存在或者错误,这时返回值为-1.出现该错误

  6. Codeforces 1137C Museums Tour (强连通分量, DP)

    题意和思路看这篇博客就行了:https://www.cnblogs.com/cjyyb/p/10507937.html 有个问题需要注意:对于每个scc,只需要考虑进入这个scc的时间即可,其实和从哪 ...

  7. 算法Sedgewick第四版-第1章基础-019一Scanner的用法

    package algorithms.fundamentals001; import java.util.Locale; import java.util.Scanner; import algori ...

  8. Java-马士兵设计模式学习笔记-工厂模式-抽象工厂模式

    一.概述 1.抽象工厂:当情况是需要产生一系列产品,若需更换产品,则要求一系列产品一起换,且要控制一系列产品的产生过程,此时可考虑抽象工厂模式.例:小明装修屋子,把电视.冰箱都替换掉,他这次需要把电视 ...

  9. 安装visual_Paradigm,时序图的应用

    此安装包已经上传到sunny的百度网盘. 删除,即,右击别的地方,然后,选择delete即可. 拖箭头,拖到某个实体上,再松开,会自动连线. 很好的一款画图工具.

  10. 关于集合的小demo

    /*1.分析以下需求,并用代码实现: (1)有如下代码: (2)定义方法统计集合中指定元素出现的次数,如"e" 3,"f" 2,"g" 4* ...