基于SSM框架分页数据的封装:这里我们需要根据自己的实际需要重写一下HashMap的一些方法,这样可以更好的适应你的项目需求。
封装完成后,我们查询是只要传一个pageObject对象到后台,后台数据封装回PageObject对象就行了,这样我们可以少写很多代码。
public class PagerObject { private int page = 1; // 页码 从1开始 private int size = 10; // 分页大小 默认10 private List rows = new ArrayList(); // 分页数据 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")&¶ms.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 getRows() { return rows; } public void setRows(List rows) { this.rows = rows; } }