环境:idea+mysql

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

第一步,编写sql语句

  <select id="selectImages" resultType="com.abc.entity.Image_examine">
SELECT
*
FROM
image
<where>
<if test="status!=null and status!=''">
status=#{status}
</if>
<if test="examine!=null and examine!=''">
AND examine=#{examine}
</if>
<if test="sex!=null and sex!=''">
AND sex=#{sex}
</if>
</where>
limit #{start},#{pageSize}
</select>

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

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

第二步,编写controller

  /**
* @param examine 审核状态
* @param gender 性别
* @param request
* @return
*/
@RequestMapping(method = RequestMethod.GET, value = "/avatar")
public String selectAvatar(Integer examine, Integer gender,
HttpServletRequest request, Integer status,
Integer currentPage) {
try {
currentPage = (currentPage==null?1:currentPage);
int total = image_examineService.getCount();
int pageNum = 0;
if(total%100==0){
pageNum = total/100;
}else {
pageNum = total/100 + 1;
}
System.out.println("currentPage:"+currentPage+"total:"+total+"pageNum:"+pageNum); List<Image_examine> list = imageService.selectImages(status, examine == null ? 3 : examine,
gender,(currentPage-1)*100,100);
request.setAttribute("list", list);
复制代码是不对滴,自己敲~
request.setAttribute("pageNum",pageNum);
request.setAttribute("currentPage",currentPage);
} catch (Exception e) {
e.printStackTrace();
}
return "image";
}

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

  24行

    (currentPage-1)*100,100 这个在我转载的博客中有解释,即 limit后面的两个参数
  pageNum 意思是 数据一共多少页
  14-20行是计算多少页,获取pageNum,计算方式很简单 select count(1) from xxx 第三步,编写页面参数
  数据的遍历就不写了,直接写按钮
  
 <div class="btn-set">
<a class="pre" href="${pageContext.request.contextPath}/xx/avatar?currentPage=${currentPage-1}">上一页</a>
当前第<span class="currentPage">${currentPage}</span>页,共<span class="total">${pageNum}</span>页
<a class="next" href="${pageContext.request.contextPath}/xx/avatar?currentPage=${currentPage+1}">下一页</a>
</div>

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

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

  完事了~

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

 

SSM项目手动分页详解的更多相关文章

  1. TortoiseGit学习系列之TortoiseGit基本操作拉取项目(图文详解)

    前面博客 TortoiseGit学习系列之TortoiseGit基本操作克隆项目(图文详解) TortoiseGit学习系列之TortoiseGit基本操作修改提交项目(图文详解) TortoiseG ...

  2. TortoiseGit学习系列之TortoiseGit基本操作修改提交项目(图文详解)

    前面博客 TortoiseGit学习系列之TortoiseGit基本操作克隆项目(图文详解) TortoiseGit基本操作修改提交项目 项目克隆完成后(可以将克隆 clone 理解为 下载,检出 c ...

  3. Git学习系列之Git基本操作拉取项目(图文详解)

    前面博客 Git学习系列之Git基本操作推送项目(图文详解) 当然,如果多人协作,或者多个客户端进行修改,那么我们还要拉取(Pull ... )别人推送到在线仓库的内容下来. 大神们是不推荐使用 pu ...

  4. Git学习系列之Git基本操作推送项目(图文详解)

    前面博客 Git学习系列之Git基本操作提交项目(图文详解) 如果完成到一定程度,那么可以推送到远端在线仓库. 推送之前,请确保你已经设置了全局的 user.name 和 user.email, 如果 ...

  5. Git学习系列之Git基本操作提交项目(图文详解)

    前面博客 Git学习系列之Git基本操作克隆项目(图文详解) 然后可以 cd 切换到 LispGentleIntro 目录, 新增或者修改某些文件.这里只是模拟一下操作, 实际情况可能是 使用 Ecl ...

  6. Loadrunner手动关联详解

    Loadrunner手动关联详解 一.关联的含义: 关联(correlation):在脚本回放过程中,客户端发出请求,通过关联函数所定义的左右边界值(也就是关联规则),在服务器所响应的内容中查找,得到 ...

  7. Angular-cli新建项目目录结构详解

    Angular-cli新建项目目录结构详解 在上一篇博客中我们已经通过Angular CLI命令行工具创建出来一个全新的Angular项目,要想写项目,首先我们要先搞清楚项目的目录结构是怎样的,每个文 ...

  8. vue-cli3.0 脚手架搭建项目的过程详解

    1.安装vue-cli 3.0 ? 1 2 3 npm install -g @vue/cli # or yarn global add @vue/cli 安装成功后查看版本:vue -V(大写的V) ...

  9. IntelliJ IDEA创建Maven+SSM+Tomcat+Git项目【全程详解】

    记录一下整个创建项目的过程,其中包括: Maven 项目创建: SSM配置文件: Tomcat配置: Git配置: Git忽略文件Ignore配置: 图文讲解,通俗易懂,易上手. 一.创建Maven ...

随机推荐

  1. Spring MVC集成Swagger

    什么是Swagger? 大部分 Web 应用程序都支持 RESTful API,但不同于 SOAP API——REST API 依赖于 HTTP 方法,缺少与 Web 服务描述语言(Web Servi ...

  2. $.extend()方法和(function($){...})(jQuery)详解

    1.    JS中substring与substr的区别 之前在项目中用到substring方法,因为C#中也有字符串的截取方法Substring方法,当时也没有多想就误以为这两种方法的使用时一样的. ...

  3. 虚拟主机、VPS以及云主机的区别和对比

    对于很多需要建网站的朋友来说,虚拟主机是必须要了解的基础知识.虚拟主机相对于VPS与云主机来说出现的较早,也是被大多数站长所了解的主机.很多人容易将这三者混淆,弄不清楚三者的联系与区别.那么虚拟主机. ...

  4. 用Dedecms5.7的arclist标签调用文章内容

    arclist标签调用文章内容 首先大家都知道在Dedecms中,list标签是可以调用文章内容的,调用格式就不再此冗述了.从我个人来说,我非常不喜欢用list标签调用,有可能我会尽量使用arclis ...

  5. dedecms列表页有图调用缩略图无图留空的方法

    默认情况下,织梦的文章列表页会调用出当前栏目下的文章列表,并且调用出每个文章的缩略图:如果文章本身就有图,会调用出一张小图,如果没有,则会显示默认的织梦图片.这种处理方式有时候比较影响美观,其实可以修 ...

  6. Hive 多分隔符的使用 (转载)

    方法一)通过org.apache.hadoop.hive.contrib.serde2.RegexSerDe格式的serde. 1) 建表语句 #指定以^|~作为分隔符 CREATE TABlE ta ...

  7. android项目红色感叹号

    Project --> Clean 清理一下,一般要注意的,如果是你的项目文件有错误,特别是xml文件,清理后那个R资源文件会不见的,那就需要你把错误修正后自动生成的.

  8. eclipse 用maven创建web项目

    Eclipse 用maven构建web项目 (2013-01-27 11:05:31) 转载▼ 标签: it eclipse maven spring web 杂谈   一.背景介绍 对于初学者,用m ...

  9. Debugging java application with netbean

    Debugging Java Applications with NetBeans    from:https://manikandanmv.wordpress.com/2009/09/24/debu ...

  10. zabbix_sender用法实例

    环境centos6.8 zabbix版本3.2.4 需求: 要远程监控一台服务器A,但只能通过远程服务器连接本地服务器B,但B不能主动连A(因为A没有固定公网ip) 使用了zabbix_agent的a ...