SSM动态展示分页
| 这个作业属于哪个课程 | 2021春软件工程实践|S班(福州大学) |
|---|---|
| 这个作业要求在哪里 | 作业具体要求 |
| 这个作业的目标 | 个人技术 |
| 参考文献 | ... |
技术概述
SSM的分页技术主要在我负责的产品的中在信息展示时会使用到,分别在讨论和签到的多页展示中,由于数据库的内容可能会比较多,所以需要使用该技术,难点主要存在于和前后端对接的具体数据接口可能会出现无法对接问题
技术详述
- 1.首先在pom中配置需要的pageHelper的依赖
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.2.0</version>
</dependency>
- 2.在Controller列表展示页面加入一个有当前页面参数的Integer currentPage
@RequestMapping("/detail")
@ResponseBody
public Topic getCommentList(Integer id,@RequestParam(value = "currentPage",required=false,defaultValue="1")Integer currentPage){
Topic topic=topicService.findTopicComment(id,currentPage);
return topic;
}
- 3.在实现了Service接口的ServiceImpl函数中调用pageHelper,并传入具体参数
public class TopicController {
@Autowired
private TopicService topicService;
@RequestMapping("/category")
/**
*
* 搜索
*/
@ResponseBody
public List<Topic> getCategory(String content,String type,Model model,@RequestParam(value = "currentPage",required=false,defaultValue="1")Integer currentPage){
List<Topic> topics=null;
if(type.equals("title")) {
topics=topicService.findTopicByTitle(content,currentPage);
}
else{
topics=topicService.findTopicByAccount(content,currentPage);
}
model.addAttribute(topics);
return topics;
}
@RequestMapping("/all")
@ResponseBody
public List<Topic> getAll(@RequestParam(value = "currentPage",required=false,defaultValue="1")Integer currentPage){
List<Topic> topics=topicService.findAllTopic(currentPage);
return topics;
}
@RequestMapping("/detail")
@ResponseBody
public Topic getCommentList(Integer id,@RequestParam(value = "currentPage",required=false,defaultValue="1")Integer currentPage){
Topic topic=topicService.findTopicComment(id,currentPage);
return topic;
}
@RequestMapping("/newTopic")
@ResponseBody
public int insertTopic(Topic topic){
int rows=topicService.insertTopic(topic);
return rows;
}
@RequestMapping("/deleteTopic")
@ResponseBody
public int deleteTopic(Integer id){
int rows=topicService.deleteTopic(id);
return rows;
}
}
- 4.当然,在具体的Mapper中还要编写相应的和数据库的查询操作,这和未加分页的方法是一样的,这里就举几个例子
<mapper namespace="team.ljm.secw.mapper.TopicMapper">
<select id="findTopicById" parameterType="Integer" resultType="Topic">
select * from t_topic where id = #{id}
</select>
<select id="findTopicByTitle" parameterType="String" resultType="Topic">
select * from t_topic where title=#{title}
</select>
<select id="findTopicByAccount" parameterType="String" resultType="Topic">
select * from t_topic where account=#{account}
</select>
- 5.流程图

问题和解决过程
- 分页的问题其实是在具体底层mybatis的查询功能都做完之后才开始编写考虑的,主要的原因是在摒弃无限下拉的展示功能后,考虑到内容展示需要在每个页面有一定的限制,bing所以选择了比较好用的pageHelper来快速实现分页功能,在后端测试时,使用了一点点的jsp代码来进行测试
<div class="page text-left clearfix" style="margin-top: 40px">
<a <c:if test="${pageInfo.pageNum != 1}">href="${pageContext.request.contextPath}/product/list?currentPage=${pageInfo.pageNum - 1 }"</c:if>
<c:if test="${pageInfo.pageNum == 1}"> href="javascript:void(0)" class="disabled"</c:if>
>上一页</a>
<c:forEach begin="1" end="${pageInfo.pages }" varStatus="status">
<a href="${pageContext.request.contextPath}/product/list?currentPage=${status.count }"
<c:if test="${status.count == pageInfo.pageNum}">class="select"</c:if>>${status.count }</a>
</c:forEach>
<a <c:if test="${pageInfo.pageNum == 20}">class="disabled" href="javascript:void(0)"</c:if>
<c:if test="${pageInfo.pageNum != 20}">href="${pageContext.request.contextPath}/product/list?currentPage=${pageInfo.pageNum + 1 }"</c:if>
>下一页</a>
</div>
最终结果也是比较喜人的,算是顺利解决
总结
pageHelper属于对于前端界面的一个补充和对数据库查询的压力降低,网上对这方面的使用教程应该也挺多的,但和自己实际操作起来还是很不一样,总体来说前后的pageHelper的使用算是比较顺利,测试也很快,我相信SSM还有很多很好用的插件等着自己去探索
参考文献
SSM动态展示分页的更多相关文章
- SSM框架——实现分页和搜索分页
登录|注册 在路上 在路上,要懂得积累:在路上,要学会放下:我在路上!Stay hungry,Stay foolish. 目录视图 摘要视图 订阅 [公告]博客系统优化升级 ...
- 微信小程序结合后台数据管理实现商品数据的动态展示、维护
微信小程序给我们提供了一个很好的开发平台,可以用于展现各种数据和实现丰富的功能,本篇随笔介绍微信小程序结合后台数据管理实现商品数据的动态展示.维护,介绍如何实现商品数据在后台管理系统中的维护管理,并通 ...
- SSM框架实现分页
SSM框架实现分页 1,.首先创建一个分页的工具类 package cn.page.po; import java.io.Serializable; public class Page impleme ...
- 在Winform系统界面中对进展阶段的动态展示和处理
在我们做客户关系管理系统的Winform界面的时候,需要对进展阶段这个属性进行一个方便的动态切换和标记处理,如我们根据不同的进展阶段显示不同的相关信息,也可以随时保存当前的阶段信息.其实也是一个比较常 ...
- MVC+EF+PagedList+调用通用存储封装+多表联合信息展示分页+存储过程分页
主要的技术点不在这里一一阐述,相关存储也是引用别人的,主要技术点就是通过最优性能方式处理需求,PagedList.包需要在线安装就可以 直接上干货 1.存储代码之第一种: 参数相对多点 /**//* ...
- JAVAEE——宜立方商城09:Activemq整合spring的应用场景、添加商品同步索引库、商品详情页面动态展示与使用缓存
1. 学习计划 1.Activemq整合spring的应用场景 2.添加商品同步索引库 3.商品详情页面动态展示 4.展示详情页面使用缓存 2. Activemq整合spring 2.1. 使用方法 ...
- 【ajax+php】动态展示4级单位(省、市、县、镇)
1.本篇教程以ajax+php动态展示[省.市.县.镇]四级地区单位 2.效果图: 3.不废话,贴代码! HTML: <div class="form-group"&g ...
- [python] 排序的动态展示
两句闲话 本文所说的排序是指基于交换的排序.因此,按理来说,本文应该叫基于交换的排序的动态展示,但是这样太拗口了. 效果展示 最终效果如下. 实现方法 需要说明的是,在这里是通过pygame来实现图形 ...
- Arcgis栅格时序地图制作---时间轴动态展示多期影像
转自原文 Arcgis栅格时序地图制作---时间轴动态展示多期影像 效果如何???满意您go on,不满意咱 say goodbye··· 题外话: 为了在这里动态展示下制作结果,也是费了老劲了,转换 ...
随机推荐
- 【tee小白的第一篇随笔】keystone代码略读
武大信安在读,最近在自学Risc-v架构的可信执行环境. (实验报告多半是为了交差.临时起意写写博客,分享一些自己读代码的心得理解.) 本篇内容由队和我友总结而成,如有错误欢迎指正交流. keysto ...
- mysqldump中skip-tz-utc参数介绍
前言: 在前面文章中,有提到过 mysqldump 备份文件中记录的时间戳数据都是以 UTC 时区为基础的,在筛选恢复单库或单表时要注意时区差别.后来再次查看文档,发现 tz-utc.skip-tz- ...
- [Qt] 事件机制(一)
事件主要分为两种: 在与用户交互时发生.比如按下鼠标(mousePressEvent),敲击键盘(keyPressEvent)等 系统自动发生,比如计时器事件(timerEvent)等 每种事件对应一 ...
- centos7 连接打印机
centos7 连接打印机 2017-08-07 15:05:33 五岳寻仙客 阅读数 2531更多 分类专栏: Liunx的日常使用 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版 ...
- linux进程间通信-(转自 临水)
一.进程间通信概述进程通信有如下一些目的:A.数据传输:一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几M字节之间B.共享数据:多个进程想要操作共享数据,一个进程对共享数据的修改,别 ...
- 贪心算法leetcode-763
int[] lastShow = new int[26]; var list = new LinkedList<Integer>(); for (int i = 0; i < s.l ...
- 十、.net core(.NET 6)搭建ElasticSearch(ES)系列之Java环境搭建和Node.js环境搭建
安装java jdk环境:我此处使用的是jdk16版本.下载地址: https://www.oracle.com/java/technologies/javase-jdk16-downloads.ht ...
- 「 洛谷 」P2151 [SDOI2009]HH去散步
小兔的话 欢迎大家在评论区留言哦~ HH去散步 题目限制 内存限制:125.00MB 时间限制:1.00s 标准输入 标准输出 题目知识点 动态规划 \(dp\) 矩阵 矩阵乘法 矩阵加速 矩阵快速幂 ...
- opentack - 本地化
目录 1 Openstack minimal component 1 组件与功能 2 集群数据存储 2 neutron控制端和计算节点 2.1 SDN网络实现方式 2.2 安全组实现 2.3 虚拟机内 ...
- 在命令行模式下查看Python帮助文档---dir、help、__doc__
在命令行模式下查看Python帮助文档---dir.help.__doc__ 1.dir函数式可以查看对象的属性,使用方法很简单,举str类型为例,在Python命令窗口输入 dir(str) 即 ...