基于SSM框架分页数据的封装

本文介绍了一种基于HashMap封装的分页查询方案,通过自定义PagerObject类简化了前后端交互流程,减少了代码重复,提高了开发效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这里我们需要根据自己的实际需要重写一下HashMap的一些方法,这样可以更好的适应你的项目需求
封装完成后,我们查询是只要传一个pageObject对象到后台,后台数据封装回PageObject对象就行了,这样我们可以少写很多代码




public class PagerObject<T> {

private int page = 1; // 页码 从1开始
private int size = 10; // 分页大小 默认10
private List<T> rows = new ArrayList<T>(); // 分页数据
private ZMap params = new ZMap();// 查询参数,这个是基于HashMap的进一步封装
private int total;// 符合查询条件的总条目数
private int pageSize;//总页数
public PagerObject() {


}


public PagerObject(HttpServletRequest request) {

//这里需要注意的是封装一个map,用来保存查询参数
ZMap params = new ZMap(request);
this.page = params.getInt("page", 1); //获取页码
this.size = params.getInt("rows", 10); //获取分页大小
this.pageSize=params.getString("pageSize");//获取总页数
generatePaginationParam();
Iterator iter = params.keySet().iterator();
while (iter.hasNext()) {
Object key = iter.next();
//System.out.println(key);
Object val = params.get(key);
if(val.toString().trim().equals("")){
params.put(key, null);
}
}
this.params = params;
}
      //这个方法用于后台查询
public void generatePaginationParam() {
params.put("start", (page - 1) * size);
params.put("size", size);
params.put("sort", sort);
params.put("order", order);

if(null!=params.getString("isPagination")&&params.getString("isPagination").equals("false")){
params.put("isPagination", false);
}
else
params.put("isPagination", true);
}


public int getPage() {
return page;
}


public void setPage(int page) {
this.page = page;
}


public String getSort() {
return sort;
}


public void setSort(String sort) {
this.sort = sort;
}


public String getOrder() {
return order;
}


public void setOrder(String order) {
this.order = order;
}


@Override
public String toString() {


return JSON.toJSONString(this); // 直接转为json输出
}


public IMap getParams() {
return params;
}


public void setParams(IMap params) {
this.params = params;
}


public int getTotal() {
return total;
}


public void setTotal(int total) {
this.total = total;
}


public int getSize() {
return size;
}


public void setSize(int size) {
this.size = size;
}


public List<T> getRows() {
return rows;
}


public void setRows(List<T> rows) {
this.rows = rows;
}


}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值