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. 10_RHEL安装搜狗输入法

    首先需要安装相关源 1.加入EPEL源 EPEL7几乎是必备的源: $ sudo yum install epel-release 2.添加mosquito-myrepo源 mosquito-myre ...

  2. Memcached源码分析——hash

    以下为memcached中关于使用的hash算法的一点记录 memcached中默认使用的是Bob Jenkins的jenkins_hash算法 以下4段代码均在memcached-1.4.22/ha ...

  3. .NET MVC插件化开发框架源码(插件功能完善版)

    离上次第一次上传源码一个多星期了,在工作之余今天终于把插件管理部门的功能全部完善了,已可用于实际开发,管理界面因为没人帮忙设计,所以有点丑,今天这版算是0.1.0.0吧,后面我会发布很多插件来填充这个 ...

  4. codevs 2152 滑雪

    2152 滑雪  时间限制: 1 s  空间限制: 32000 KB  题目等级 : 黄金 Gold 题解       题目描述 Description trs喜欢滑雪.他来到了一个滑雪场,这个滑雪场 ...

  5. 转:NoSQL更适合担当云数据库吗

    在过去几十年,关系型数据库管理系统一直是数据管理的主要模型,随着Web应用数据规模的显著增长,NoSQL系统逐渐引起关注.领域专家Sherif Sakr分析指出,NoSQL具备的优势(能够水平扩展数据 ...

  6. Installshield更新时,新加dll未拷贝至安装目录问题完美解决【原创】

    最近在发现在开发过程中新增的目录或文件(特别是dll\ocx\exe等二进制文件),在升级安装时拷贝失败. 经过一周的研究,完美解决办法: 对于新增的文件或目录,放到一个新的component中,并且 ...

  7. forever 使用

    安装: $npm install -g forever y@y:ydkt$ forever start server/app.js warn: --minUptime not set. Default ...

  8. POJ 3268 Silver Cow Party ( Dijkstra )

    题目大意: 有N个农场每个农场要有一头牛去参加一个聚会,连接每个农场有m条路, 聚会地点是X,并且路是单向的.要求的是所有牛赶到聚会地点并且回到自己原先的农场所需要的最短时间. 题目分析: 其实就是以 ...

  9. RFID系统的选择

    RFID系统的选择关键在于:1.对自身需求的明确:2.以业务为导向:满足今天的需求,又支持明日的发展:3.选择合适的解决方案供应商. RFID技术改变传统的仓库管理方式,能为您企业提高作业效率,节省大 ...

  10. Sublime一些设置

    很喜欢sublime text 2 总是在新窗口中打开文件,很麻烦,文件打多了,就会出现N多窗口,虽然可以直接打开当前目录可以解决,但有时候查看其它项目中的单个文件,就比较麻烦.百度一直在搜索,无果. ...