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. 面向对象设计模式之Interpreter解释器模式(行为型)

    动机:在软件构建过程中 ,如果某一特定领域的问题比较复杂,类似的模式不断重复出现,如果使用普通的编程方式来实现将面临非常频繁的变化.在这种情况下,将特定领域的问题表达为某种语法规则的句子,然后构建一个 ...

  2. struts1、ajax、jquery、json简单实例

    1.页面ajax代码,使用$.ajax,获得json对象后each $.ajax({ type:"GET", url:ctx + "/uploadImg.do" ...

  3. Python按行读取文件

    1:readline() file = open("sample.txt") while 1: line = file.readline() if not line: break ...

  4. storm接入metaq时类不兼容错误 无法初始化MonitorLog

    在实际的项目中,需要storm从metaq中读取数据,一开始就有日志问题,查到是storm/lib中的log4j-over-slf4j和slf4j-api.jar包的不兼容导致的,这些日志包使用时必须 ...

  5. HTML5做手机站页面字体显示很小的解决方法

    HTML5做手机站需要加上一部分代码,不然字体会显示很小的,经历了很久的不解才发现的,希望给大家一些帮助 <!DOCTYPE html PUBLIC "-//WAPFORUM//DTD ...

  6. JQuery Dialog(JS模态窗口,可拖拽的DIV) 效果实现代码

    效果图 调用示意图   交互示意图 如上图所示,这基本是JQueryDialog的完整逻辑流程了. 1.用户点击模态窗口的“提交”按钮时,调用JQueryDialog.Ok()函数,这个函数对应了用户 ...

  7. UVa 673 Parentheses Balance(栈的使用)

     栈 Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu   Description You are ...

  8. 大数据学习之测试hdfs和mapreduce(二)

    上篇已经搭建好环境,本篇主要测试hadoop中的hdfs和mapreduce功能. 首先填坑:启动环境时发现DataNode启动不了.查看日志 从日志中可以看出,原因是因为datanode的clust ...

  9. spring mvc标准项目结构

    src com.xxx.inews.dao com.xxx.inews.dao.impl com.xxx.inews.data.entity com.xxx.inews.data.vo com.xxx ...

  10. C# 多线程经典示例 吃苹果

    本文主要讲述了多线程开发中经典示例,通过本示例,可以加深对多线程的理解. 示例概述: 下面用一个模拟吃苹果的实例,说明C#中多线程的实现方法.要求开发一个程序实现如下情况:一个家庭有三个孩子,爸爸妈妈 ...