在前端中我们总会遇到显示数据的问题,正常情况分页显示是必须的,这个时候我们不能仅仅在前端进行分页,在前端其实做起分页是很困难的,着就要求我们在后台拿数据的时候就要把分页数据准备好,在前端我们只需要将这些后台准备好的数据拿过来就行了

在后台我们通常是实现准备好一个分页工具类Pagination

这里是分页显示的基本数据

在前台中我们只需要将pagination中构造函数中所需要的参数传过来就可以了。然后在向数据查询数据的时候将pagination中的限定条件传过去查询的数据就不是所有的数据而是前端所请求的分页数据了理论就是这样了下面看看我是如何实现的

`@RequestMapping(value = { “/assistantWork.action” })

public String assistantWork(HttpSession session, Integer page, QueryVo vo,

Model model) {

User user = (User) session.getAttribute(“user”);

if (vo == null) {

vo = new QueryVo();

}

// 当前页

if (page == null) {

page = 1;

}

vo.setUserId(user.getId());

// 查询总记录

Integer countrecord = workSerivce.selectAllWorksByConditionCount(vo);

List clazzs = workSerivce.selectClazzsByUserId(user.getId());

model.addAttribute(“clazzs”, clazzs);

if(countrecord!=0){

// 分页对象

Pagination pagination = new Pagination(page, countrecord); // 设置分页的查询条件

vo.setStartSize(pagination.getStartsize());

vo.setPageSize(pagination.PAGESIZE);

// 拿到改助教管理下的所有班级的作业

// List works = workSerivce.selectAllWorks(user.getId());

List works = workSerivce.selectWorksByClazzId(vo);

pagination.setRows(works);

model.addAttribute("pagination", pagination);

// 条件传过去 回写

model.addAttribute("vo", vo);

}else {

//没有管理的班级

model.addAttribute("msg", "当前用户没有管理的作业");

}

return "/pages/assistant/homework_assistant";

}`

这段代码里面用到其他的mybatis分装类,这里读者请忽视其他的只看我们将的pagination这段就可以了,可以看出我在最后查询的时候是带着pagination条件的,最后拿到的数据就是我们前端需要的

整个过程就是这样下面我将pagination工具类贴在下面

`package tm.change.util;

import java.util.List;

/**

*

* @author redarmy_chen

*

* @param

*/

public class Pagination {

// 分页信息

private int nowpage;// 当前页

private int countrecord;// 总记录

private int countpage;// 总页数

public static final int PAGESIZE = 3;// 每页显示的记录数

private int startpage;// 页面中的起始页

private int endpage;// 页面中的结束页

private int startsize;

private final int SHOWPAGE = 6;// 页面中显示的总页数 baidu,google显示的总页数是20

// 在测试我们才用6来测试

private List rows;

private String url;

public Pagination() {

super();

// TODO Auto-generated constructor stub

}

/** 根据当前页及总记录数来构造分页对象 */

public Pagination(int nowpage, int countrecord) {

//获取当前页 //1 2 3

//判断最小页码

if(nowpage<=1){

this.nowpage=1;

}else{

this.nowpage = nowpage;

}

//总记录数

this.countrecord = countrecord;

/** 计算总页数 */

this.countpage = this.countrecord % this.PAGESIZE == 0 ? this.countrecord

/ this.PAGESIZE

: this.countrecord / this.PAGESIZE + 1;

//判断最大页

if(this.nowpage>=this.countpage){

this.nowpage=this.countpage;

}

//开始的记录数

this.startsize=(this.nowpage-1)*this.PAGESIZE;

/** 计算startpage与endpage的值 */

/** 总页数数是否小于4 */

if (this.countpage < (this.SHOWPAGE / 2 + 1)) {

this.startpage = 1; // 页面中起始页就是1

this.endpage = this.countpage;// 页面中的最终页就是总页数

} else {

/** else中是总页数大于4的情况 */

/** 首先当前页的值是否小于等于4 */

if (this.nowpage <= (this.SHOWPAGE / 2 + 1)) {

this.startpage = 1;

this.endpage = this.nowpage + 2;

/** 判断页面的最终页是否大于总页数 */

if (this.endpage >= this.countpage) {

this.endpage = this.countpage;

}

} else {

this.startpage = this.nowpage - 3;

this.endpage = this.nowpage + 2;

if (this.endpage >= this.countpage) {

this.endpage = this.countpage;

if (this.countpage < this.SHOWPAGE) {

this.startpage = 1;

} else {

this.startpage = this.endpage - 5;

}

}

}

}

}

public int getNowpage() {

return nowpage;

}

public void setNowpage(int nowpage) {

this.nowpage = nowpage;

}

public int getCountrecord() {

return countrecord;

}

public void setCountrecord(int countrecord) {

this.countrecord = countrecord;

}

public int getCountpage() {

return countpage;

}

public void setCountpage(int countpage) {

this.countpage = countpage;

}

public int getStartpage() {

return startpage;

}

public void setStartpage(int startpage) {

this.startpage = startpage;

}

public int getEndpage() {

return endpage;

}

public void setEndpage(int endpage) {

this.endpage = endpage;

}

public List getRows() {

return rows;

}

public void setRows(List rows) {

this.rows = rows;

}

public String getUrl() {

return url;

}

public void setUrl(String url) {

this.url = url;

}

public int getStartsize() {

return startsize;

}

public void setStartsize(int startsize) {

this.startsize = startsize;

}

}`

java分页前端怎么实现_JavaWeb前端分页显示方法相关推荐

  1. 前端Vue+ElementUI的Pagination分页组件实现分页展示 后端Spring Boot +Mybatis Plus实现分页接口

    前端Vue+ElementUI的Pagination分页组件实现分页展示 & 后端Spring Boot +Mybatis Plus实现分页接口 很久没有更新博客了,主要原因是博主一直在补充自 ...

  2. SpringBoot的开发(3)--前端页面的搭建、前端页面的编写、分页和增删改查功能的实现...

    前端页面的搭建 首先我们在resources包下新建一个文件夹static,SpringBoot默认会去把static包下的文件做一个路由 然后在static包下新建一个HTML File类型的文件, ...

  3. paginatorhelper ajax,Bootstrap Paginator+PageHelper实现分页效果_蓝瞳_前端开发者

    最近需要做一个分页,找了挺多的前端分页效果,发现Bootstrap Paginator分页插件效果不错,而我页面也是用BootStrap做的响应式页面,就做了实现一个简单的分页效果. PageHelp ...

  4. 前端实现elementUi table表格分页

    1. 前端进行分页(后端返回所有的数据) 最主要的是对总数据进行分页截取某个部分的数据进行显示 <!-- 关键是对总数据的截取 tableData.slice((currentPage - 1) ...

  5. 《前端》慕课--分页导航(带页码的分页导航)

    分页导航(带页码的分页导航),玩转Bootstrap(基础)教程-慕课网  https://www.imooc.com/code/3185 在Bootstrap框架中使用的是ul>li>a ...

  6. java ee 分页_【JavaEE】JavaEE分页实践

    作者:邹峰立,微博:zrunker,邮箱:zrunker@yahoo.com,微信公众号:书客创作,个人平台:www.ibooker.cc. 本文选自书客创作平台第56篇文章.阅读原文 . 书客创作 ...

  7. java poi doc转docx_Java 插入Word分页符、分节符

    在Word文档中,插入分页符或分节符是一种规范文档内容布局的有效方式.特别是对于一些文档格式要求严格,排版布局严谨的文档,如论文.书籍.期刊等等,通过插入的分页符或分节符可以将每部分内容加以合理区分, ...

  8. java 前端工作内容_java前端、java后端、java全栈工作主要内容是什么?哪个薪资高?...

    摘要 最近,听了一场关于java全栈工程师职位的简介说明,里面很清楚的说明了一下前端,后端,全栈都是做什么工作的.其实,想做这个行业,就应该了解职能以及技能需求,这样学习才能更高效.我知道一些刚刚入行 ...

  9. java mysql物联网土壤智能监控web前端+java后台+数据接程序

    博主介绍:✌在职Java研发工程师.专注于程序设计.源码分享.技术交流.专注于Java技术领域和毕业设计✌ 项目名称 java mysql物联网土壤智能监控web前端+java后台+数据接程序 视频效 ...

  10. java和前端哪个好学_前端好学还是Java好学?

    学web前端 首先要了解前端是做什么的,web前端开发工程师,主要职责是利用 html,css,JavaScript,Flash等各种web技术进行客户端产品的开发.完成客户端程序(也就是浏览器端)的 ...

最新文章

  1. html标签体,HTMLCSS基础-html标签的实体
  2. 代码管理 防止员工_低代码开发现形记
  3. VC中海量文件读写类设计与应用(转)
  4. android中白色怎么表示,通知栏图标在android 5中变成白色
  5. linux mysql select_MySQL-Select语句高级应用
  6. php curl无视ssl,用Curl实现Post和Get请求,可绕过SSL验证
  7. 李迟2011年3月代码积累
  8. 软件测试及标准(基于ISO/IEC/IEEE 29119系列)
  9. C语言:数组数据移动
  10. [渝粤教育] 西南科技大学 管理学原理 在线考试复习资料(2)
  11. 一个简易邮件群发软件设计与实现
  12. diamond mysql_TDDL动态数据源Diamond配置
  13. win7工作组看不到“其他电脑”的解决方法
  14. java xlsx转html
  15. iframe不能显示内容的问题
  16. Android Gif动态图片库
  17. 利用tushare pro根据财务指标选股
  18. 快播王欣最新项目大揭秘!
  19. 开源!!!100多个常用API接口免费分享!建议收藏!
  20. NCH PicoPDF Plus for Mac(PDF编辑器)

热门文章

  1. 中华石杉的架构学习笔记
  2. [转载]借助LVS+Keepalived实现负载均衡
  3. win10系统怎么进行远程控制操作
  4. 串口收数数码管显示(串口带协议带校验)
  5. 土地房屋权属登记系统
  6. 向量场的散度和旋度_矢量场散度和旋度的物理意义
  7. h5混合开发框架初识
  8. Web程序设计-客户端表单验证
  9. 分析光固化3D打印的优势
  10. 个人所得税个人计算机,个人所得税计算器(PC)版