SSM项目手动分页详解

环境:idea+mysql

  首先,既然是mysql,那肯定会用到limit,用这个分页的确很方便。

第一步,编写sql语句

 1  <select id="selectImages" resultType="com.abc.entity.Image_examine">
 2         SELECT
 3         *
 4         FROM
 5         image
 6         <where>
 7             <if test="status!=null and status!=''">
 8                 status=#{status}
 9             </if>
10             <if test="examine!=null and examine!=''">
11                 AND examine=#{examine}
12             </if>
13             <if test="sex!=null and sex!=''">
14                 AND sex=#{sex}
15             </if>
16         </where>
17         limit #{start},#{pageSize}
18     </select>

  注意这里的参数,start是查询的第几页[start是从0开始],pageSize是每页显示的数据量

  关于 当前页和下一页之间的规律关系,这里转载一篇博客,写的很详细。

第二步,编写controller

 1  /**
 2      * @param examine 审核状态
 3      * @param gender  性别
 4      * @param request
 5      * @return
 6      */
 7     @RequestMapping(method = RequestMethod.GET, value = "/avatar")
 8     public String selectAvatar(Integer examine, Integer gender,
 9                                HttpServletRequest request, Integer status,
10                                Integer currentPage) {
1112         try {
13             currentPage = (currentPage==null?1:currentPage);
14             int total = image_examineService.getCount();
15             int pageNum = 0;
16             if(total%100==0){
17                 pageNum = total/100;
18             }else {
19                 pageNum = total/100 + 1;
20             }
21             System.out.println("currentPage:"+currentPage+"total:"+total+"pageNum:"+pageNum);
22 
23             List<Image_examine> list = imageService.selectImages(status, examine == null ? 3 : examine,
24                     gender,(currentPage-1)*100,100);
25             request.setAttribute("list", list);
26             复制代码是不对滴,自己敲~
27             request.setAttribute("pageNum",pageNum);
28             request.setAttribute("currentPage",currentPage);
29             30         } catch (Exception e) {
31             e.printStackTrace();
32         }
33         return "image";
34     }

  参数列表   第10行  只需要关注 currentpage,这个是从页面获取到的,我们需要以这个数值来计算上下页。

  24行  

    (currentPage-1)*100,100 这个在我转载的博客中有解释,即 limit后面的两个参数
  pageNum 意思是 数据一共多少页
  14-20行是计算多少页,获取pageNum,计算方式很简单 select count(1) from xxx

第三步,编写页面参数
  数据的遍历就不写了,直接写按钮
  
1 <div class="btn-set">
2         <a class="pre" href="${pageContext.request.contextPath}/xx/avatar?currentPage=${currentPage-1}">上一页</a>
3         当前第<span class="currentPage">${currentPage}</span>页,共<span class="total">${pageNum}</span>4         <a class="next" href="${pageContext.request.contextPath}/xx/avatar?currentPage=${currentPage+1}">下一页</a>
5 </div>

  计算页数的加减,我推荐的做法是在页面计算,好处是controller只需要关心获取数据。

  如果在controller加减,就得给controller发送一个标识,告诉它我要进行什么操作,不方便。

  完事了~

  麋鹿留在最后的话:不要过分依赖插件,即使人家插件再好用,毕竟是人家写的,掌握核心才能不做代码的搬运工。

 

转载于:https://www.cnblogs.com/find-the-right-direction/p/8349804.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
熟悉项目开发过程中SSM框架、JSP、Mysql使用,知道各技术之间的如何衔接; 考虑到部分学生只需要学习前台(买家)或是后台(后台),故将电商系统分为电商系统前台和电商系统后台两个项目, 当前课程包含电商系统前台和电商系统后台 该课程主要涉及到的技术有:  项目涉及的技术:  1、前端:jsp、css、javascript、jQuery(js框架)、bootstrap框架 2、后台:Spring MVC、Spring、Mybatis框架、javaMail进行邮件发送、jstl 、jstl自定义分页标签、代码生成器等 3、数据库:Mysql 4、服务器:Tomcat项目开发涉及的功能: 1、项目以及数据库搭建 2、用户登录、退出3、用户注册、邮件发送、以及用户信息激活4、首页商品信息页面搭建以及查询功能实现5、查询商品明细6、加入商品至购物车、删除、更新、清除购物车商品信息7、确认订单信息8、订单页面搭建以及下订单功能实现9、查询我的购物车以及订单信息10、商品明细查看,商品修改,商品下架11、商品类型管理12、订单管理13、代码机器人使用等等其他实战项目:java项目实战之电商系统全套(前台和后台)(java毕业设计ssm框架项目)https://edu.csdn.net/course/detail/25771 java项目之oa办公管理系统(java毕业设计)https://edu.csdn.net/course/detail/23008 java项目之hrm人事管理项目(java毕业设计)https://edu.csdn.net/course/detail/23007 JavaWeb项目实战之点餐系统前台https://edu.csdn.net/course/detail/20543 JavaWeb项目实战之点餐系统后台https://edu.csdn.net/course/detail/19572 JavaWeb项目实战之宿舍管理系统(Java毕业设计含源码)https://edu.csdn.net/course/detail/26721 JavaWeb项目实战之点餐系统全套(前台和后台)https://edu.csdn.net/course/detail/20610 java项目实战之电子商城后台(java毕业设计SSM框架项目)https://edu.csdn.net/course/detail/25770 java美妆商城项目|在线购书系统(java毕业设计项目ssm版)https://edu.csdn.net/course/detail/23989 系统学习课程:JavaSE基础全套视频(环境搭建 面向对象 正则表达式 IO流 多线程 网络编程 java10https://edu.csdn.net/course/detail/26941 Java Web从入门到电商项目实战挑战万元高薪(javaweb教程)https://edu.csdn.net/course/detail/25976其他素材版(毕业设计或课程设计)项目:点击老师头像进行相关课程学习

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值