org.springside.modules.orm中的page类自我解读
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//
import java.util.Collections;
import java.util.List;
import org.apache.commons.lang.StringUtils; public class Page<T> { /*静态变量,用于设置结果是按照正序排列还是反序排列*/
public static final String ASC = "asc";
public static final String DESC = "desc"; /*当前页码*/
protected int pageNo = 1;
/*页面容量*/
protected int pageSize = 1;
/*orderBy表示通过那个进行排序,比如说:id*/
protected String orderBy = null;
/*order是设置以哪种方式进行排序:可以使ASC也可以是DESC*/
protected String order = null;
/*只是是否自动计算*/
protected boolean autoCount = true; /*以下2个参数常作为 分页所需的"返回结果"! */
//result表示当页面存在的实体类集合。
protected List<T> result = Collections.emptyList();
//totalCount表示当前页面总条数。
protected long totalCount = -1L; public Page() {
} public Page(int pageSize) {
this.setPageSize(pageSize);
} public Page(int pageSize, boolean autoCount) {
this.setPageSize(pageSize);
this.setAutoCount(autoCount);
} public int getPageNo() {
return this.pageNo;
} public void setPageNo(int pageNo) {
this.pageNo = pageNo;
if(pageNo < 1) {
this.pageNo = 1;
} } public int getPageSize() {
return this.pageSize;
} public void setPageSize(int pageSize) {
this.pageSize = pageSize;
if(pageSize < 0) {
this.pageSize = 1;
} } /**
* 获得当前页面第一条数据的排列
* @return
*/
public int getFirst() {
return (this.pageNo - 1) * this.pageSize + 1;
} public String getOrderBy() {
return this.orderBy;
} public void setOrderBy(String orderBy) {
this.orderBy = orderBy;
} public boolean isOrderBySetted() {
return StringUtils.isNotBlank(this.orderBy) && StringUtils.isNotBlank(this.order);
} public String getOrder() {
return this.order;
} public void setOrder(String order) {
String[] orders = StringUtils.split(StringUtils.lowerCase(order), ',');
String[] var6 = orders;
int var5 = orders.length; for(int var4 = 0; var4 < var5; ++var4) {
String orderStr = var6[var4];
if(!StringUtils.equals("desc", orderStr) && !StringUtils.equals("asc", orderStr)) {
throw new IllegalArgumentException("排序方向" + orderStr + "不是合法值");
}
} this.order = StringUtils.lowerCase(order);
} public boolean isAutoCount() {
return this.autoCount;
} public void setAutoCount(boolean autoCount) {
this.autoCount = autoCount;
} public List<T> getResult() {
return this.result;
} public void setResult(List<T> result) {
this.result = result;
} public long getTotalCount() {
return this.totalCount;
} public void setTotalCount(long totalCount) {
this.totalCount = totalCount;
} /**
* 获取一共有多少页(设置的是总条数)
* @return
*/
public long getTotalPages() {
if(this.totalCount < 0L) {
return -1L;
} else {
long count = this.totalCount / (long)this.pageSize;
if(this.totalCount % (long)this.pageSize > 0L) {
++count;
} return count;
}
} /**
* 是否还有下一页
* @return
*/
public boolean isHasNext() {
return (long)(this.pageNo + 1) <= this.getTotalPages();
} /**
* 得到下一页的页码
* @return
*/
public int getNextPage() {
return this.isHasNext()?this.pageNo + 1:this.pageNo;
} /**
* 是否有上一页
* @return
*/
public boolean isHasPre() {
return this.pageNo - 1 >= 1;
} /**
* 得到上一页页码
* @return
*/
public int getPrePage() {
return this.isHasPre()?this.pageNo - 1:this.pageNo;
}
}
对于上述代码需要有几点强调的:
1.Page类本质来讲仅仅是一个辅助类,其中包含的是一些争对分页的辅助数据,具体怎么用,还是需要自己进行处理的。
2.XXX随时补充。。。
org.springside.modules.orm中的page类自我解读的更多相关文章
- 三:理解Page类的运行机制(例:在render方法中生成静态文件)
我这里只写几个常用的事件1.OnPreInit:此事件后将加载个性化信息和主题2.OnInit:初始化页面中服务器控件的默认值但控件的状态没有加载,没有创建控件树3.OnPreLoad:控件完成状态和 ...
- 在jsp中,page指令的()属性用来引入需要的包或类。
在jsp中,page指令的()属性用来引入需要的包或类. A.extends B.import C.language D.contentType 解答:B
- orm中的聚合函数,分组,F/Q查询,字段类,事务
目录 一.聚合函数 1. 基础语法 2. Max Min Sum Avg Count用法 (1) Max()/Min() (2)Avg() (3)Count() (4)聚合函数联用 二.分组查询 1. ...
- 领域模型中的实体类分为四种类型:VO、DTO、DO、PO
http://kb.cnblogs.com/page/522348/ 由于不同的项目和开发人员有不同的命名习惯,这里我首先对上述的概念进行一个简单描述,名字只是个标识,我们重点关注其概念: 概念: V ...
- 【ASP.NET 基础】Page类和回调技术
Page 类有一个 IsPostBack 属性,这个属性用来指示当前页面是第一次加载还是响应了页面上某个控件的服务器事件导致回发而加载. 1.asp.net页面的声明周期 asp.net页面运行的时候 ...
- C#基础系列:实现自己的ORM(反射以及Attribute在ORM中的应用)
反射以及Attribute在ORM中的应用 一. 反射什么是反射?简单点吧,反射就是在运行时动态获取对象信息的方法,比如运行时知道对象有哪些属性,方法,委托等等等等.反射有什么用呢?反射不但让你在运行 ...
- (转载)OC学习篇之---Foundation框架中的其他类(NSNumber,NSDate,NSExcetion)
前一篇说到了Foundation框架中的NSDirctionary类,这一一篇来看一下Foundation的其他常用的类:NSNumber,NSDate,NSException. 注:其实按照Java ...
- 深刻理解Python中的元类metaclass(转)
本文由 伯乐在线 - bigship 翻译 英文出处:stackoverflow 译文:http://blog.jobbole.com/21351/ 译注:这是一篇在Stack overflow上很热 ...
- 非Page类使用session(Httpcontext.session和page.session区别)
ASP.NET中Session高级使用技巧 在开发Aspx .NET软件时,有时需要把常用的东西封装到一个非PAGE类中,文章介绍在非Page类中使用Session的方法. 一.PAGE参数法: 1. ...
随机推荐
- c++面试题【转】
语言部分: 虚函数,多态.这个概念几乎是必问. STL的使用和背后数据结构,vector string map set 和hash_map,hash_set 实现一个栈类,类似STL中的栈.这个题目初 ...
- 笨方法学python--第一个程序
该章主要知识点有: 1 print 打印,有双引号,单引号 2 分析报错信息,积累经验 3 # -*- coding:utf-8 -*-,可以输出汉字 4 井号,# ,注释, 英文名 octothor ...
- 转 当当网资深DBA:DB运维四大现代化的实现
位好,今天我的主题是 <DB运维的四个现代化> ,看标题就能明白,是关于DBA自动化运维平台的事情.http://dbaplus.cn/news-21-855-1.html 主要是分享下我 ...
- split和join函数的比较
关于split和join方法 处理对象字符串.split拆分字符串,join连接字符串 string.join(sep): 以string作为分隔符,将seq中的所有元素(字符串表示)合并成一个新的字 ...
- jdk,tomcat配置
方法/步骤 一.安装JDK和Tomcat 1,安装JDK:直接运行jdk-7-windows-i586.exe可执行程序,默认安装即可. 备注:路径可以其他盘符,不建议路径包含中文名及特殊符号. 2. ...
- Android中自定义veiw使用Java中的回调方法
//------------------MainActivity----中---------------------------------- import android.os.Bundle;imp ...
- JS-DOM操作应用高级(一)
表格应用--tBodies tHead tFoot rows cells <title>无标题文档</title> <script> window.onlo ...
- World Finals 2003 UVA - 1025 A Spy in the Metro(动态规划)
分析:时间是一个天然的序,这个题目中应该决策的只有时间和车站,使用dp[i][j]表示到达i时间,j车站在地上已经等待的最小时间,决策方式有三种,第一种:等待一秒钟转移到dp[i+1][j]的状态,代 ...
- 1--OC -- HelloWorld
一.点击Xcode,选择“Create a new Xcode project” 二.左边选择“OS X Application”,右边选择“Command Line Tool”,Next 三.输 ...
- 转:Selenium借助AutoIt识别上传(下载)详解
AutoIt目前最新是v3版本,这是一个使用类似BASIC脚本语言的免费软件,它设计用于Windows GUI(图形用户界面)中进行自动化操作.它利用模拟键盘按键,鼠标移动和窗口/控件的组合来实现自动 ...