import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.Iterator;
import java.util.List; import net.sf.json.JSONObject; /**
* 分页类
* @author rubekid
*
* @param <T>
*/
public class Page<T> extends QueryParameter { public static final int PAGE_SIZE = 20;
private List<T> result = null;
private long totalCount = -1;
private JSONObject queryParams = new JSONObject(); public Page() {
setPageSize(PAGE_SIZE);
} public Page(int pageSize) {
setPageSize(pageSize);
} public Page(int pageSize, boolean autoCount) {
setPageSize(pageSize);
this.autoCount = autoCount;
} /**
* 获取反向排序
* @return
*/
public String getInverseOrder() {
if (order.endsWith("desc")){
return "asc";
}
return "desc";
} public List<T> getResult() {
return result;
} public void setResult(List<T> result) {
this.result = result;
} public long getTotalCount() {
return this.totalCount;
} public void setTotalCount(long totalCount) {
this.totalCount = totalCount;
} public long getTotalPages() {
if (totalCount < 0){
return -1;
} long count = totalCount / pageSize;
if (totalCount % pageSize > 0){
count ++;
}
return count;
} public boolean isHasNext() {
return (pageNo + 1 <= getTotalPages());
} public int getNextPage() {
if (isHasNext()){
return pageNo + 1;
}
return this.pageNo;
} public boolean isHasPre() {
return (pageNo - 1 >= 1);
} public int getPrePage() {
if (isHasPre()){
return pageNo - 1;
}
return pageNo;
} public void addQueryParam(String key, Object value) {
queryParams.put(key, value);
} @SuppressWarnings("unchecked")
public String getQueryString() throws UnsupportedEncodingException{
String result = "";
for (Iterator<String> iterator = queryParams.keys(); iterator.hasNext();) {
String key = iterator.next();
result += key + "=" + URLEncoder.encode(queryParams.getString(key), "utf-8") + "&";
} if (result.length() > 0){
result = result.substring(0, result.length() - 1);
}
return result;
} public String getQueryParamString() {
return queryParams.toString();
} public void setQueryString(String queryString) {
queryParams = JSONObject.fromObject(queryString);
} public JSONObject getQueryParams() {
return queryParams;
}
}

Java分页类 Page的更多相关文章

  1. (转)ThinkPHP使用心得分享-分页类Page的用法

    转之--http://www.jb51.net/article/50138.htm ThinkPHP中的Page类在ThinkPHP/Extend/Library/ORG/Util/Page.clas ...

  2. PHP通用分页类page.php[仿google分页]

    <?php /** ** 通用php分页类.(仿Google样式) ** 只需提供记录总数与每页显示数两个参数.(已附详细使用说明..) ** 无需指定URL,链接由程序生成.方便用于检索结果分 ...

  3. java - 分页类

    pager.java package com.jspnews.util; import java.io.Serializable; import java.util.List; /** * * < ...

  4. page分页类

    <?php /** file: Page.class.php 完美分页类 Page */ class Page { private $total; //数据表中总记录数 private $lis ...

  5. [Java] 一种好的JAVA分页实现

    喃都不说了,贴代码,意思都在代码里面了 Page.java //分页类.定义分页字段信息,供前台页面使用 package com.core.common; import java.util.List; ...

  6. php实现的分页类

    php分页类文件: <?php /** file: page.class.php 完美分页类 Page */ class Page { private $total; //数据表中总记录数 pr ...

  7. php 简单分页类

    /**  file: page.class.php   完美分页类 Page  */ class Page {  private $total;          //数据表中总记录数  privat ...

  8. php部分---一个分页类、用法

    1.分页类 <?php /** file: page.class.php 完美分页类 Page */ class Page { private $total; //数据表中总记录数 privat ...

  9. PHP+jQuery 列表分页类 ( 支持 url 分页 / ajax 分页 )

    /* ******* 环境:Apache2.2.8 ( 2.2.17 ) + PHP5.2.6 ( 5.3.3 ) + MySQL5.0.51b ( 5.5.8 ) + jQuery-1.8.3.mi ...

随机推荐

  1. JavaScript设计模式之工厂模式

    一.工厂模式概念 工厂模式定义一个用于创建对象的接口,这个接口由子类决定实例化哪一个类.该模式使一个类的实例化延迟到了子类.而子类可以重写接口方法以便创建的时候指定自己的对象类型(抽象工厂). 这个模 ...

  2. [CentOS 0010] CentOS 配置mysql允许远程登录

    Mysql为了安全性,在默认情况下用户只允许在本地登录,可是在有此情况下,还是需要使用用户进行远程连接,因此为了使其可以远程需要进行如下操作: 一.允许root用户在任何地方进行远程登录,并具有所有库 ...

  3. MYSQL一对多,两表查询合并数据

    select a.askid,a.title,GROUP_CONCAT(b.message SEPARATOR '----') as content from gg_ask as a join gg_ ...

  4. Samba 服务器介绍

    Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成.SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通 ...

  5. python3可变与不可变数据类型

    Python3中有六个标准的数据类型: Number(数字) String(字符串) List(列表) Dictionary(字典) Tuple(元组) Set(集合) 我理解的可变就是当一个变量创建 ...

  6. webpack资料

    https://zhuanlan.zhihu.com/p/20367175?columnSlug=FrontendMagazine http://www.cnblogs.com/tugenhua070 ...

  7. JS基于时间戳写的浏览访问人数

    Title:JS基于时间戳写的浏览访问人数  --2013-12-23 14:07 <script language="JavaScript"> var timesta ...

  8. 报错:tr was not declared in this scope

    报错代码如下: label->setText(tr("您好,Qt5.5.0!")); 修改为: label->setText(QObject::tr("您好, ...

  9. mobile plugin

    http://fronteed.com/iCheck/ http://spritely.net/documentation/ http://www.mobilexweb.com/blog/mobile ...

  10. Servlet&JSP中的知识点

    先sun提出的是Servlet体系,这个体系使得使用JAVA的程序员也能开发基于B/S架构的WEB应用程序,使用Servlet类将HTTP请求和响应封装在标准JAVA类中来实现各种WEB应用方案.随着 ...