EasyUI + PageHelper实现分页

前端参数是:
page:表示第几页 int型
rows:每页的记录数 int型

后端参数是:
total:表的总记录数 int型
rows:对应页面的记录 List<T>

使用一个封装类EasyUIDataGridResult.java,用于向前端传递参数.要实现序列化.防止出现一些奇妙的问题:getInputStream() has already been called for this request

EasyUIDataGridResult.java

package com.jzt.ssm.utils;

import java.io.Serializable;
import java.util.List;

import com.jzt.ssm.po.TBlogtype;

/**
 * 
    * @ClassName: EasyUIDataGridResult
    * 
    * @author 蒋政涛
    * @date 2018-10-20
    *
 */
public class EasyUIDataGridResult implements Serializable {
	private long total;
	private List<TBlogtype> rows;
	public long getTotal() {
		return total;
	}
	public void setTotal(long total) {
		this.total = total;
	}
	public List<TBlogtype> getRows() {
		return rows;
	}
	public void setRows(List<TBlogtype> rows) {
		this.rows = rows;
	}
	public EasyUIDataGridResult(){

	}
	
}

mybatis的全局配置文件:

注: 针对的是PageHelper4.x版本,新的5.x版本不一样,具体参考这篇博客:Mybatis分页插件PageHelper

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
	
	<!-- 全局setting配置,根据需要添加 -->
	
	<!-- 配置别名 -->
	<typeAliases>
		<!-- 批量扫描别名 -->
		<package name="com.jzt.ssm.po"/>
	</typeAliases>

	<!-- 配置mapper
	由于使用spring和mybatis的整合包进行mapper扫描,这里不需要配置了。
	必须遵循:mapper.xml和mapper.java文件同名且在一个目录 
	 -->

	   <!-- 配置分页插件 -->

	<plugins>
		<!-- com.github.pagehelper为PageHelper类所在包名 -->
		<plugin interceptor="com.github.pagehelper.PageHelper">
			<property name="dialect" value="mysql"/>
			<!-- 该参数默认为false -->
			<!-- 设置为true时,会将RowBounds第一个参数offset当成pageNum页码使用 --> <!-- 和startPage中的pageNum效果一样-->
			<property name="offsetAsPageNum" value="false"/>
			<!-- 该参数默认为false --> <!-- 设置为true时,使用RowBounds分页会进行count查询 -->

			<property name="rowBoundsWithCount" value="false"/>
			<!-- 设置为true时,如果pageSize=0或者RowBounds.limit = 0就会查询出全部的结果 -->
			<!-- (相当于没有执行分页查询,但是返回结果仍然是Page类型)-->
			<property name="pageSizeZero" value="true"/>
			<!-- 3.3.0版本可用 - 分页参数合理化,默认false禁用 -->
			<!-- 启用合理化时,如果pageNum<1会查询第一页,如果pageNum>pages会查询最后一页 -->
			<!-- 禁用合理化时,如果pageNum<1或pageNum>pages会返回空数据 -->
			<property name="reasonable" value="true"/>
			<!-- 3.5.0版本可用 - 为了支持startPage(Object params)方法 -->
			<!-- 增加了一个`params`参数来配置参数映射,用于从Map或ServletRequest中取值 -->
			<!-- 可以配置pageNum,pageSize,count,pageSizeZero,reasonable,不配置映射的用默认值 -->
			<!--<property name="params" value="pageNum=start;pageSize=limit;pageSizeZero=zero;reasonable=heli;count=contsql"/>-->
		</plugin>
	</plugins>


	<!-- <mappers>
	
	</mappers> -->
</configuration>

执行查询

listByPage.java

public EasyUIDataGridResult listByPage(int page, int rows) {
		//设置查询 第几页page 每页记录数rows
		PageHelper.startPage(page, rows);
		TBlogtypeExample example = new TBlogtypeExample();
		//没有设置表示无条件,查询对应页数所有的记录.
		List<TBlogtype> list = tBlogtypeMapper.selectByExample(example);
		
		PageInfo<TBlogtype> pageInfo = new PageInfo<TBlogtype>(list);
		
		//表的总记录数
		long total = pageInfo.getTotal();
		EasyUIDataGridResult result = new EasyUIDataGridResult();
		result.setTotal(total);
		result.setRows(list);
		return result;
	}

在这里插入图片描述
设置参数pageNum = 3,pageSize = 2, 当查询第三页时,list.size() = 2,total=6
在这里插入图片描述
当前端传来参数page = 3, rows=2,返回如下结果:

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

涛歌依旧fly

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值