最近需要做一个分页,找了挺多的前端分页效果,发现Bootstrap Paginator分页插件效果不错,而我页面也是用BootStrap做的响应式页面,就做了实现一个简单的分页效果。
PageHelper地址
Bootstrap Paginator地址
在SpringBoot+Mybatis做分页
1.首先添加maven依赖
<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>4.1.6</version> </dependency>
2.添加一个PageHelperConfig配置类
@Configuration
public class PageHelperConfig {
@Bean
public PageHelper pageHelper(){
PageHelper pageHelper = new PageHelper();
Properties properties = new Properties();
properties.setProperty("offsetAsPageNum", "true");
properties.setProperty("rowBoundsWithCount", "true");
properties.setProperty("reasonable", "true");
properties.setProperty("reasonable","true");
properties.setProperty("pageSizeZero", "true");
pageHelper.setProperties(properties);
return pageHelper;
}
}
3.写一个用来存储分页信息的对象
public class PageBean<T> implements Serializable {
private static final long serialVersionUID = 1L;
private long total; //总记录数
private List<T> list; //结果集
private int pageNum; //第几页
private int pageSize; //每页记录数
private int pages; // 总页数
private int size; //当前页的数量<=pageSize
public PageBean(List<T> list){
if (list instanceof Page){
Page<T> page = (Page<T>) list;
this.pageNum = page.getPageNum();
this.pageSize = page.getPageSize();
this.total = page.getTotal();
this.pages = page.getPages();
this.list = page;
this.size = page.size();
}
}
public long getTotal() {
return total;
}
public void setTotal(long total) {
this.total = total;
}
public List<T> getList() {
return list;
}
public void setList(List<T> list) {
this.list = list;
}
public int getSize() {
return size;
}
public void setSize(int size) {
this.size = size;
}
public int getPageNum() {
return pageNum;
}
public void setPageNum(int pageNum) {
this.pageNum = pageNum;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getPages() {
return pages;
}
public void setPages(int pages) {
this.pages = pages;
}
}
4.在Service接口和实现上,我们可以查询到的把数据传到PageBean
public interface ArticleService {
PageBean<Article> selectArticleList(int pageNum, int pageSize);
}
@Service
public class ArticleServiceImpl implements ArticleService {
@Autowired
private ArticleMapper articleMapper;
public PageBean<Article> selectArticleList(int pageNum, int pageSize) {
PageHelper.startPage(pageNum, pageSize);
List<Article> list = this.articleMapper.selectArticleList();
return new PageBean<>(list);
}
}
5.Controller
@RestController
public class ArticleJsonController {
@Autowired
private ArticleService articleService;
@GetMapping("/articleManage/articlePageBean")
public PageBean articlePageBean(int pageNum, int pageSize) {
PageBean<Article> pageBean = this.articleService.selectArticleList(pageNum, pageSize);
return pageBean;
}
}
6.页面用Ajax无刷新分页,添加Bootstrap Paginator插件,bootstrap-paginator.js和bootstrap-responsive.min.css样式
<div id="content" class="container"></div>
<div class="container">
<div class="panel col-sm-10 panel-default">
<div class="panel-body reply-top media">
<div id="page"></div>
</div>
</div>
</div>
function pagehtml(pageNum) {
var articleid = $("#articleNum").val();
if (pageNum == 0){
pageNum=1;
} else {
pageNum=pageNum;
}
$.ajax({
url:"/TsengBlog/article/replyPage",
type:"get",
dataType:"json",
data: {pageNum : pageNum, pageSize : 5, articleid : articleid },
success:function (data) {
var options = {
alignment:"center",//居中显示
currentPage: data.pageNum,//当前页数
totalPages: data.pages,//总页数 注意不是总条数
pageUrl: function(type, page, current){
if (page==current) {
return "javascript:void(0)";
} else {
return "javascript:pagehtml("+page+")";
}
}
};
var html="";
$.each(data.list, function (i, obj) {
html += '<div class="panel col-sm-10 panel-default">'+
'<div class="panel-body reply-top media">'+
'<div class="col-sm-3 col-md-2 media-left">'+
'<img src="/UploadFiles/2021-04-02/Tseng.png">
如果是Maven+SSM的,SSM整合就不多说了,网上有很多博客和例子整合。
1.mybatis.xml配置
<configuration>
<plugins>
<plugin interceptor="com.github.pagehelper.PageHelper">
<property name="dialect" value="mysql" />
<property name="pageSizeZero" value="true" />
<property name="offsetAsPageNum" value="true" />
<property name="reasonable" value="true" />
<property name="rowBoundsWithCount" value="true" />
</plugin>
</plugins>
</configuration>
2.service
public PageInfo page(pageNum, pageSize){
PageHelper.startPage(pageNum, pageSize);
List<ShopNav> lists = navService.getAllNav();
PageInfo<ShopNav> pageInfo = new PageInfo<ShopNav>(lists);
return PageInfo;
}
页面效果展示
如果大家还想深入学习,可以点击这里进行学习,再为大家附3个精彩的专题:
Bootstrap学习教程
Bootstrap实战教程
Bootstrap插件使用教程
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
白云城资源网 Copyright www.dyhadc.com
暂无“Bootstrap Paginator+PageHelper实现分页效果”评论...
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新日志
2025年10月21日
2025年10月21日
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]
