Spring Boot + JPA + Freemarker 实现后端分页 完整示例

界面效果

螢幕快照 2017-07-28 15.34.42.png
螢幕快照 2017-07-28 15.34.26.png
螢幕快照 2017-07-28 15.17.00.png
螢幕快照 2017-07-28 15.16.09.png
螢幕快照 2017-07-28 15.15.44.png

前端代码

<#-- 表格服务端分页:完美简单实现 http://v4-alpha.getbootstrap.com/components/pagination/--><nav aria-label="Page navigation"><ul class="pagination pagination-lg  justify-content-center"><#assign totalPages = pageResult.totalPages><#assign totalElements = pageResult.totalElements><#assign number = pageResult.number><#assign first = pageResult.first><#assign last = pageResult.last><#--上一页--><#if first><li class="page-item"><a class="page-link" href="#">上一页</a></li><#else><li class="page-item"><a class="page-link" href="wotuView?page=${number-1}&size=20">上一页</a></li></#if><#--小于等于10页全部显示--><#if totalPages <= 10><#list 1..totalPages as pageIndex><#if number == pageIndex><li class="page-item active"><a class="page-link" href="wotuView?page=${pageIndex}&size=20">${pageIndex}</a></li><#else><li class="page-item active"><a class="page-link" href="wotuView?page=${pageIndex}&size=20">${pageIndex}</a></li></#if></#list></#if><#--大于10页:显示前5页,最后3页,中间用 ...--><#if totalPages gt 10><#--显示前5页--><#list 1..5 as pageIndex><#if number == pageIndex><li class="page-item active"><a class="page-link" href="wotuView?page=${pageIndex}&size=20">${pageIndex}</a></li><#else><li class="page-item"><a class="page-link" href="wotuView?page=${pageIndex}&size=20">${pageIndex}</a></li></#if></#list><#--中间部分的显示 ...  number: currentPage, 区间逻辑的判断--><#if number == 6 ><li class="page-item active"><a class="page-link" href="wotuView?page=${number}&size=20">${number}</a></li><li class="page-item"><a class="page-link" href="#">...</a></li><#elseif number == totalPages-3><li class="page-item"><a class="page-link" href="#">...</a></li><li class="page-item active"><a class="page-link" href="wotuView?page=${number}&size=20">${number}</a></li><#elseif number gt 6 && number lt totalPages-3><li class="page-item"><a class="page-link" href="#">...</a></li><li class="page-item active"><a class="page-link" href="wotuView?page=${number}&size=20">${number}</a></li><li class="page-item"><a class="page-link" href="#">...</a></li><#else><li class="page-item"><a class="page-link" href="#">...</a></li></#if><#--显示最后3页--><#list totalPages-2..totalPages as pageIndex><#if number == pageIndex><li class="page-item active"><a class="page-link" href="wotuView?page=${pageIndex}&size=20">${pageIndex}</a></li><#else><li class="page-item"><a class="page-link" href="wotuView?page=${pageIndex}&size=20">${pageIndex}</a></li></#if></#list></#if><#--下一页--><#if last><li class="page-item"><a class="page-link" href="#">下一页</a></li><#else><li class="page-item"><a class="page-link" href="wotuView?page=${number+1}&size=20">下一页</a></li></#if></ul><div class="center">总共 ${totalPages} 页, ${totalElements} 条记录</div></nav>

后端代码

@RequestMapping(value = "wotuView", method = arrayOf(RequestMethod.GET))fun wotuView(@RequestParam(value = "page", defaultValue = "0", required = false) page: Int,@RequestParam(value = "size", defaultValue = "10", required = false) size: Int,model: Model): ModelAndView {model.addAttribute("pageResult", getPageResult(page, size))return ModelAndView("wotuView")}private fun getPageResult(page: Int, size: Int): Page<Image>? {val sort = Sort(Sort.Direction.DESC, "id")val pageable = PageRequest(page, size, sort)return imageRepository?.findAll(pageable)}interface ImageRepository : PagingAndSortingRepository<Image, Long> {@Query("SELECT a from #{#entityName} a where a.category like %?1%")fun findByCategory(category: String): MutableList<Image>@Query("select count(*) from #{#entityName} a where a.url = ?1")fun countByUrl(url: String): Int
}

完整工程源码

https://github.com/EasyKotlin/chatper15_net_io_img_crawler

Spring Boot + JPA + Freemarker 实现后端分页 完整示例相关推荐

  1. Spring Boot + JPA + Oracle 自增长字段实现示例

    JPA 主键生成策略 JPA提供了四种主键生成策略, 分别是: AUTO 自动选择一个最适合底层数据库的主键生成策略. IDENTITY: 主键由数据库自动生成, ID自增长, Oralcle 不支持 ...

  2. Spring Boot + Bootstrap + FreeMarker分页 (JPA, Liquibase, H2)

    1. 引言 在本文中,我们将介绍基于Spring Boot JPA.Bootstrap 和FreeMarker的分页组件.将数据库结果划分为页是许多应用程序中常用的功能.本教程将介绍如何使用FreeM ...

  3. Spring Boot JPA 2.7.2

    icon: edit date: 2022-01-02 category: CategoryA tag: tag A tag B star: true Spring Boot JPA 2.7.2 项目 ...

  4. spring boot 与 iview 前后端分离架构之开发环境基于docker的部署的实现(三十六)

    spring boot 与 iview 前后端分离架构之开发环境基于docker的后端的部署的实现(三十六) 公众号 基于docker的后端的部署 安装mysql数据库 创建数据库 安装redis 安 ...

  5. (转)Spring Boot(五):Spring Boot Jpa 的使用

    http://www.ityouknow.com/springboot/2016/08/20/spring-boot-jpa.html 在上篇文章Spring Boot(二):Web 综合开发中简单介 ...

  6. Spring Boot (十五): Spring Boot + Jpa + Thymeleaf 增删改查示例

    <p>这篇文章介绍如何使用 Jpa 和 Thymeleaf 做一个增删改查的示例.</p> 先和大家聊聊我为什么喜欢写这种脚手架的项目,在我学习一门新技术的时候,总是想快速的搭 ...

  7. spring boot jpa级联保存

    spring boot jpa级联保存 CascadeType oneToMany关系 one的一方中加 @OneToMany(fetch = FetchType.EAGER, cascade = C ...

  8. freemarker ftl模板_Spring Boot2 系列教程(十)Spring Boot 整合 Freemarker

    今天来聊聊 Spring Boot 整合 Freemarker. Freemarker 简介 这是一个相当老牌的开源的免费的模版引擎.通过 Freemarker 模版,我们可以将数据渲染成 HTML ...

  9. 解决spring boot+JPA实现操作数据库时编辑时也变成了新增

    场景:使用spring boot+JPA框架开发项目的时候,新增数据是正常的,但是编辑有时候会变成新增,JPA判断是否新增对象有两个方法:1根据id,2根据版本号.我在开发项目中用的是根据版本号进行判 ...

最新文章

  1. 【css】页面出现两个滚动条以及只有一半页面显示内容的解决方法
  2. ResNet网络解决的一些事
  3. Windows服务器安全设置经验详谈
  4. 如何自己养卡,快速提升信用卡额度?
  5. ConcurrentHashMap和Collections.synchronizedMap(Map)的区别是什么?
  6. 开箱即用的 Prometheus 告警规则集
  7. (原)caffe在ubuntu中设置GPU的ID号及使用多个GPU
  8. 选择数据分析工具时要注意哪些问题
  9. Java内存模型(Java并发编程的艺术整理)
  10. 第6集丨Persistent Objects 和 Caché SQL
  11. 试读《线上幽灵:世界头号黑客米特尼克自传》
  12. 最全英语日期相关表达
  13. Maixpy K210图像识别(仅自学笔记)
  14. 人生算法第一天心得总结(A)九段进阶(3-6)
  15. 第一章第六题(数列求和)(Summation of a series)
  16. html文档元素大小相关的单位,网页字体单位px、em、%、rem、pt、vm、vh介绍
  17. 软件版本—— Alpha、Beta、RC版本的区别
  18. Android studio新手:实现最新版QQ登陆界面
  19. 宗镜录略讲——南怀瑾老师——系列1
  20. lecture8-RNN的训练方法之二三

热门文章

  1. matlab变量由非标量,matlab中的if语句
  2. 主站系统服务器选择,配电网自动化主站系统的结构_功能及操作系统的选择.doc...
  3. android 界面跳转封装,【Android】Fragment跳转系列
  4. python用outlook自动发邮件_python使用两种发邮件的方式smtp和outlook示例
  5. elasticsearch初次查询超时_ElasticSearch的工作流程
  6. linux查看文件位置命令bwd,linux 操作系统中find文件搜索命令的使用
  7. cross join 一张表没有值关联不出来数据_你是否还在对left join、right join和join有困扰呢?...
  8. jsp通过易宝方式实现在线支付
  9. tiny4412移植tslib库
  10. 计算机应用基础授课提纲,《计算机应用基础》讲授提纲(1).ppt