示例#1
0
 /**
  * 获取分页参数
  *
  * @param params RowBounds参数
  * @return 返回Page对象
  */
 public Page getPage(Object params) {
   Page page = getLocalPage();
   if (page == null) {
     if (params instanceof RowBounds) {
       RowBounds rowBounds = (RowBounds) params;
       if (offsetAsPageNum) {
         page = new Page(rowBounds.getOffset(), rowBounds.getLimit(), rowBoundsWithCount);
       } else {
         page = new Page(rowBounds, rowBoundsWithCount);
         // offsetAsPageNum=false的时候,由于PageNum问题,不能使用reasonable,这里会强制为false
         page.setReasonable(false);
       }
     } else {
       page = getPageFromObject(params);
     }
     setLocalPage(page);
   }
   // 分页合理化
   if (page.getReasonable() == null) {
     page.setReasonable(reasonable);
   }
   // 当设置为true的时候,如果pagesize设置为0(或RowBounds的limit=0),就不执行分页,返回全部结果
   if (page.getPageSizeZero() == null) {
     page.setPageSizeZero(pageSizeZero);
   }
   return page;
 }
示例#2
0
 /**
  * 对象中获取分页参数
  *
  * @param params
  * @return
  */
 public static Page getPageFromObject(Object params) {
   int pageNum;
   int pageSize;
   MetaObject paramsObject = null;
   if (params == null) {
     throw new NullPointerException("分页查询参数params不能为空!");
   }
   if (hasRequest && requestClass.isAssignableFrom(params.getClass())) {
     try {
       paramsObject = SystemMetaObject.forObject(getParameterMap.invoke(params, new Object[] {}));
     } catch (Exception e) {
       // 忽略
     }
   } else {
     paramsObject = SystemMetaObject.forObject(params);
   }
   if (paramsObject == null) {
     throw new NullPointerException("分页查询参数params处理失败!");
   }
   try {
     pageNum = Integer.parseInt(String.valueOf(getParamValue(paramsObject, "pageNum", true)));
     pageSize = Integer.parseInt(String.valueOf(getParamValue(paramsObject, "pageSize", true)));
   } catch (NumberFormatException e) {
     throw new IllegalArgumentException("分页参数不是合法的数字类型!");
   }
   Object _count = getParamValue(paramsObject, "count", false);
   boolean count = true;
   if (_count != null) {
     count = Boolean.valueOf(String.valueOf(_count));
   }
   Page page = new Page(pageNum, pageSize, count);
   Object reasonable = getParamValue(paramsObject, "reasonable", false);
   if (reasonable != null) {
     page.setReasonable(Boolean.valueOf(String.valueOf(reasonable)));
   }
   Object pageSizeZero = getParamValue(paramsObject, "pageSizeZero", false);
   if (pageSizeZero != null) {
     page.setPageSizeZero(Boolean.valueOf(String.valueOf(pageSizeZero)));
   }
   return page;
 }