电商平台学习笔记(一)——Spring MVC+Mybatis分页插件
/*** 分页实体类* @author: 张荣* @date: 2016年3月22日*/public class Pagination implements Serializable { private static final long serialVersionUID = 1L; // 起始页号 private Integer pageNo; // 每页记录数目 private Integer pageSize; // 总的记录条数 private Integer totalSize; // 设置下方页面跳转的参数 private PageView pageView = new PageView(); // 设置每一页的点击链接 private List<String> page = new ArrayList<String>(); private List<?> list = new ArrayList<>(); /** 部分get和set方法省略 */ public Pagination(Integer pageNo, Integer pageSize, Integer totalSiz1e) { super(); this.setStartRow(pageNo); this.pageSize = pageSize; this.totalSize = totalSize; } public Pagination() { super(); } public static Integer cpn(Integer pageNo) {< 20000 /span> return pageNo != null && pageNo >= 1 ? pageNo : 1; } /** * 建立每一页的链接 * @param url:路径 */ public void setPageBar(String url) { pageView.setTotalPage(this.totalSize % this.pageSize == 0 ? (Integer) (this.totalSize / this.pageSize) : (Integer) (this.totalSize / this.pageSize) + 1); pageView.setFristPageUrl(urlCat(url,1)); pageView.setLastPageUrl(urlCat(url, pageView.getTotalPage())); // 判断是否有上一页 if (this.pageNo == 1) { pageView.setHasPre(false); pageView.setPrePageUrl(urlCat(url, 1)); } else { pageView.setHasPre(true); pageView.setPrePageNo(this.pageNo - 1); pageView.setPrePageUrl(urlCat(url, this.pageNo - 1)); } // 判断是否有下一页 if (pageView.getTotalPage() == this.pageNo) { pageView.setHasNext(false); pageView.setNextPageUrl(urlCat(url, pageView.getTotalPage())); } else { pageView.setHasNext(true); pageView.setNextPageNo(pageNo + 1); pageView.setNextPageUrl(urlCat(url, pageView.getNextPageNo())); } for (Integer i = 1; i <= pageView.getTotalPage(); i++) { StringBuffer sb = new StringBuffer(); if (i != pageNo) { sb.append("<a href=\"").append(urlCat(url, i)).append("\">").append(i).append("</a>"); } else { sb.append("<strong>").append(i).append("</strong>"); } page.add(sb.toString()); } } /** * 拼接字符串:拼接模板:url?name=参数1&isDisplay=参数2&pageNo=参数3 * @param pageNo * @return */ private String urlCat(String url, Integer pageNo) { StringBuffer sb = new StringBuffer(url).append("&pageNo=").append(pageNo); return sb.toString(); }}
分页工具条类PageView.java/** * 分页下面的工具栏(页号等) * @author: 张荣 * @date: 2016年3月22日*/public class PageView implements Serializable{ private static final long serialVersionUID = 1L; //是否有上一页 private Boolean hasPre; //上一页的页号 private Integer prePageNo; //上一页的url private String prePageUrl = ""; //是否有下一页 private Boolean hasNext; //下一页页号 private Integer nextPageNo; //下一页的url private String nextPageUrl = ""; //首页url private String fristPageUrl = ""; //尾页url private String lastPageUrl=""; //总页数 private Integer totalPage; /**get和set方法省略**/}
Controller中设置页号(注意页号不得为空,初始化页号)!以及根据该ActionURL和附带参数来拼接下方工具栏每个按钮的url(setPageBar方法)!最后在前台用EL表达式取值展示!
其实可以进一步改进;可以将前台所有的URL全部封装在Pagination对象中一个List域中(定义一个List<String>变量存放前台所有的html代码),再在前台通过EL表达式forEach标签遍历显示!
为了提高该分页封装类的通用性!必然会有一个参数list,来储存需要展示的实体集合!我采用的是List<?> lst= new ArrayList<?>();而不要使用List<Object>lst = new ArrayList<Object>();因为前者才是可以接受所有list泛型的对象!
到此,分页插件实体类写完了!经过试验,该类具有极强的复用性,可实用于绝大多数情景!- 电商平台学习笔记(三)——Mybatis启动异常org.apache.ibatis.type.TypeException
- 电商平台学习笔记(四)——Spring配置Mybatis简化DAO层省略Mybatis核心配置文件
- SpringBoot学习笔记之mybatis分页插件集成
- mybatis学习笔记--分页查询
- JavaScript 学习笔记之二:编写自己的jQuery扩展分页插件(分享yQuery)
- Mybatis学习 PageHelper分页插件
- 电商平台学习笔记(二)——List泛型常见易错点
- 微信小程序--后端管理平台业务5--Mybatis分页PageHelper插件
- SpringBoot2.0学习之集成MyBatis PageHelper分页插件
- myBatis学习笔记(10)——使用拦截器实现分页查询
- springmvc学习笔记--mybatis--使用插件自动生成实体和mapper
- 电商平台学习笔记(六)——都是Boolean惹的祸
- MyBatis学习总结_17_Mybatis分页插件PageHelper
- 个人学习笔记----基于Spring4.3.1+mybatis+postgresql+maven搭建的个人用调度平台(三)
- 个人学习笔记----基于Spring4.3.1+mybatis+postgresql+maven搭建的个人用调度平台(四)
- MyBatis学习总结(17)——Mybatis分页插件PageHelper
- spring mvc 小记(五):MyBatis的代码生成器插件和分页插件
- 个人学习笔记----基于Spring4.3.1+mybatis+postgresql+maven搭建的个人用调度平台(一)
- jQuery PAGINATION 分页插件学习笔记
- mybatis分页插件的使用(电商项目前端动态查询排序)