HTML,JSP分页思路及代码实现(插件版)
鸽了一周,没办法,没啥时间写
非插件版:实现过程及代码
准备工作:
1)
首先我们需要导入分页插件的依赖(即jar包,如果没有学maven直接去maven官网下载jar包即可)
<!--mybatis的分页插件-->
<dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>5.1.11</version>
</dependency>
2)
在mybatis主配置文件mybatis-config.xml中注册该插件
要写在实体类别名下面,数据源配置的上面
<plugins><plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin>
</plugins>
测试工作:(选做)
如果准备工作做完可以先去测试一下
1)
设置分页信息。第一个参数是页号,第二个参数是一页显示的条数
(分页操作是基于查询全部的基础上实现修改而来的,如果查询全部还没写好,先写完在做)
@Testpublic void test3() {SqlSession session = null;try {//获取查询全部的list集合session = MybatisUtils.getSession();TeaMapper tm=session.getMapper(TeaMapper.class);//设置分页信息。第一个参数是页号,第二个参数是一页显示的条数PageHelper.startPage(1, 3);//获取集合List<Tea> teaList=tm.selectAll();//将集合封装进PageInfoPageInfo pi=new PageInfo(teaList);System.out.println(pi);//pi.forEach(System.out::println);} catch (Exception e) {e.printStackTrace();} finally {MybatisUtils.closeSession(session);}}
2)
将查询全部的集合封装到PageInfo里面,打印显示
可以看到PageInfo里面有好多属性,这些就是我们要用代码实现时写老半天代码获取的东西
(分别是,
pageNum:当前第几页 ,
pageSize:一页显示几条数据 ,
size:当前页有几条数据 ,
startRow:当前页第一条数据是从数据库第几条开始 ,
endRow:当前页最后一条数据是从数据库第几条开始 ,
total:数据库中数据总条数 ,
pages:总页数 ,
list:以及当前页的全部数据 ,
prePage:上一页页数
nextPage:下一页页数(上下这两个如果没有就默认是0)
isFirstPage:是否为第一页(true或false下面都一样)
isLastPage:是否是最后一页
hasPreviousPage:是否有上一页
hasNextPage:是否有下一页
以及导航信息老师也没说啥意思
navigatePages,navigateFirstPage,navigateLastPage,navigatepageNums
)
注意:
集合必须写在设置分页信息下面,如图对比就知道为什么了
代码实现
既然已经获取到了需要的数据那么接下来的步骤都和非插件实现的一样了
Service业务层:
PageInfo<Tea> selectAllByPage(int curPage,int pageSize);SqlSession session = MybatisUtils.getSession();
@Overridepublic PageInfo<Tea> selectAllByPage(int curPage,int pageSize) {//告知要其分页了,设置分页信息,第一页和一页查三条PageHelper.startPage(curPage,pageSize);//获取查询全部的集合List<Tea>list=tm.selectAll();//将集合封装PageInfo<Tea> pi=new PageInfo<Tea>(list);return pi;}
Servlet/Controller控制层:
private TeaService service=new TeaServiceImpl();@RequestMapping("/selectAll")public String selectAll(Model model,Integer curPage){//设置默认页数,第一次的时候不会传过来数据所以是null就默认为第一页if(curPage==null){curPage=1;}//根据自己需要设置,一页几条数据int pageSize=5;PageInfo<Tea> pi=service.selectAllByPage(curPage,pageSize);model.addAttribute("pi",pi);return "/tealist.jsp";
}
(由于我已经学了Springmvc所以收参方式有点改变)
JSP页面:
<c:if test="${requestScope.pi.hasPreviousPage}">
<a href="${pageContext.request.contextPath}/tea/selectAll.do?curPage=1">首页</a>
<a href="${pageContext.request.contextPath}/tea/selectAll.do?curPage=${pi.prePage}">上一页</a></c:if><c:if test="${requestScope.pi.hasNextPage}">
<a href="${pageContext.request.contextPath}/tea/selectAll.do?curPage=${pi.nextPage}">下一页</a>
<a href="${pageContext.request.contextPath}/tea/selectAll.do?curPage=${pi.pages}">尾页</a>
</c:if>
实现页面:
HTML,JSP分页思路及代码实现(插件版)相关推荐
- leetcode解题思路(无代码) 归类汇总版,面试笔试经典例题
我将舍弃没有巧妙解法的简单题.部分题干.代码实现.非关键步骤,目的是做成一篇每次面试前都能过一遍的思路问答题. 在我仅有的面试经验中,面试官似乎会按知识点提问.因此我认为归类极其重要. 简单的题不一定 ...
- jsp分页显示的代码与详细步骤 复制代码
首先要定义四个变量: int pageSize:每页显示多少条记录 int pageNow:希望显示第几页 int pageCount:一共有多少页 int rowCount:一共有多少条记录 说明: ...
- java分页代码思路,记录--java 分页 思路 (hibernate关键代码)
有时会脑袋蒙圈,记录下分页的思路 下面代码是hibernate的分页,其分页就是从第几条数据为起点,取几条数据.比如在mysql中的limit(5,10)取的就是第6条到第10条 在下面代码中的pag ...
- JSP分页技术的实现(利用当前页进行前后加减,并利用href进行当前页面传值,传值当然是那个当前值变量)...
一.可滚动结果集 Connection con = DriverManager.getConnection(); PreparedStatement stmt = con.prepareStatem ...
- JSP基础:(7)jsp分页与文件上传下载
目录 1 jsp分页 1.1 定义 1.2 Servlet控制器方法 2 文件上传下载 2.1 定义 2.2 SmartUpload 2.2.1 介绍 2.2.2 SmartUpload组件-Requ ...
- php 中 相关文章 的思路,php之购物车类思路及代码
相信大家肯定都在电商网站买过东西,当我们看中一件喜欢又想买的东西时,这时候你又不想这么快结账,这时候你就可以放入购物车: 就像我们平时去超市买东西一样,会推着购物车去买东西: 那么我们接下来看看jav ...
- python登录代码思路_用python登录Dr.com思路以及代码分享
用python登录Dr.com思路以及代码分享 发布于 2014-08-28 22:31:52 | 192 次阅读 | 评论: 0 | 来源: 网友投递 Python编程语言Python 是一种面向对 ...
- 9月26日云栖精选夜读:阿里Java代码规约插件即将全球首发,邀您来发布仪式现场...
10月14日,杭州云栖大会研发效能峰会场,阿里将正式对外开放Java代码规约插件及源码. 热点热议 阿里Java代码规约插件即将全球首发,邀您来发布仪式现场 作者:云效平台 发表在:阿里云效平台 ...
- jsp分页功能的实现
分页查询功能一直是web编程中常用的技术,如何实现可重复使用而又简单的分页技术呢,下面的代码可以提供一些参考,实现用户列表的分页显示,当其它数据需分页显示时,可以复用其中的分页对象 (SplitPag ...
最新文章
- QT项目添加现有文件后不能运行,MFC在类视图中自动隐藏类
- ssh登陆aix后,退格键无法删除
- rhel 6下配置网络yum源(虚拟机环境下)
- java源码导入eclipse_spring5源码如何导入eclipse
- linux脚本读取输入信息,LinuxCommandLinex -- [ 脚本 - 读取输入]
- 每天一点点之vue框架开发 - vue组件之间传值(父向子传值)
- eclipse不能调试运行Android程序问题的解决办法
- 大数据上的“大产品”
- 基于EasyDSS流媒体服务器实现的直播流管理与鉴权的后台方案
- 【数据结构】递归代码模板
- 错别字检测的软件有哪些?自动检查错别字的工具 文字校对 文本纠错 查错别字 校对软件 错别字检查 论文格式 在线校对
- 车型代号对照表_2017年最新主机厂OEM车型代号对照表
- 分享一个在沪深300下获得146.56%超额收益的策略
- A、H股股价倒挂说明了什么
- mysql sysdatabases_未能在 sysdatabases 中找到数据库 aa1xxxx 所对应的条目。没有找到具有该名称的条目...
- 微信企业号和企业微信消息发送区别
- 微信公众号裂变引流教程,2020微信公众号引流最新方法集合
- linux系统怎么设置为中午_Linux修改系统时间与时区
- 与、或、异或、按位取反
- Box2D v2.1.0用户手册翻译 - 第06章 夹具(Fixtures)
热门文章
- 饥荒服务器配修改的,饥荒远程后台服务器管理工具修改服务器自定义世界的教程方法...
- 【Python游戏】基于Python的pygame模块实现的天天酷跑游戏 | 附带源码
- 金升阳 | 更轻更小的R3系列金属导轨电源 ——LI75/120-23BxxR3
- EDIT控件只读模式及实践问题
- [附源码]计算机毕业设计JAVA文章管理系统查重PPT
- python正确保留一位小数的方法
- 算法刷题训练——成绩排名问题
- 2014年华为上机题目
- 计算机电源分金牌,主流级电竞主机电源金河田金牌A+ 650W电源拆解分享
- 高手给我指点一下迷津~技术情感困惑~