SpringSide封装Page类

package org.springside.modules.orm;

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;

protected String orderBy = null;

protected String order = null;

protected boolean autoCount = true;

//返回结果 //

protected List<T> result = Collections.emptyList();

protected long totalCount = -1;

// 构造函数 //

public Page() {

}

public Page(final int pageSize) {

setPageSize(pageSize);

}

public Page(final int pageSize, final boolean autoCount) {

setPageSize(pageSize);

setAutoCount(autoCount);

}

// 查询参数访问函数 //

public int getPageNo() {

return pageNo;

}

public void setPageNo(final int pageNo) {

this.pageNo = pageNo;

if (pageNo < 1) {

this.pageNo = 1;

}

}

public int getPageSize() {

return pageSize;

}

public void setPageSize(final int pageSize) {

this.pageSize = pageSize;

if (pageSize < 1) {

this.pageSize = 1;

}

}

public int getFirst() {

return ((pageNo - 1) * pageSize) + 1;

}

public String getOrderBy() {

return orderBy;

}

public void setOrderBy(final String orderBy) {

this.orderBy = orderBy;

}

public boolean isOrderBySetted() {

return (StringUtils.isNotBlank(orderBy) && StringUtils.isNotBlank(order));

}

public String getOrder() {

return order;

}

public void setOrder(final String order) {

//检查order字符串的合法值

String[] orders = StringUtils.split(StringUtils.lowerCase(order), ‘,‘);

for (String orderStr : orders) {

if (!StringUtils.equals(DESC, orderStr) && !StringUtils.equals(ASC, orderStr))

throw new IllegalArgumentException("排序方向" + orderStr + "不是合法值");

}

this.order = StringUtils.lowerCase(order);

}

public boolean isAutoCount() {

return autoCount;

}

public void setAutoCount(final boolean autoCount) {

this.autoCount = autoCount;

}

// 访问查询结果函数 //

public List<T> getResult() {

return result;

}

public void setResult(final List<T> result) {

this.result = result;

}

public long getTotalCount() {

return totalCount;

}

public void setTotalCount(final 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;

else

return pageNo;

}

public boolean isHasPre() {

return (pageNo - 1 >= 1);

}

public int getPrePage() {

if (isHasPre())

return pageNo - 1;

else

return pageNo;

}

}

时间: 2024-10-14 00:57:59

SpringSide封装Page类的相关文章

SSM框架下分页的实现(封装page.java和List&lt;?&gt;)

之前写过一篇博客  java分页的实现(后台工具类和前台jsp页面),介绍了分页的原理. 今天整合了Spring和SpringMVC和MyBatis,做了增删改查和分页,之前的逻辑都写在了Servlet里, 如今用了SSM框架,业务逻辑应该放在业务层(service), 这里有一个小问题:实现分页时,我们需要向页面中传两个参数: page对象(封装了页码,页容,总页数,总记录数,取得选择记录的初始位置) 集合对象(封装了bean类的信息) 也就是说,我们需要从service层获取到两个值,但是一

非Page类使用session(Httpcontext.session和page.session区别)

ASP.NET中Session高级使用技巧 在开发Aspx .NET软件时,有时需要把常用的东西封装到一个非PAGE类中,文章介绍在非Page类中使用Session的方法. 一.PAGE参数法: 1.DLL中类的实现. [c-sharp] view plaincopy public class UserManager { private Page page; public UserManager(Page dd) { page=dd; } public string GetUser() { re

三:理解Page类的运行机制(例:在render方法中生成静态文件)

我这里只写几个常用的事件1.OnPreInit:此事件后将加载个性化信息和主题2.OnInit:初始化页面中服务器控件的默认值但控件的状态没有加载,没有创建控件树3.OnPreLoad:控件完成状态和回传数据的加载4.Page_Load:此事件是在OnInit中订阅的5.Render:呈现最终页面的内容 假设有一个文章数据库以前都是通过article.aspx?id=123的动态形式访问的现在我们想要减轻服务器压力,把文章生成静态文件先看article.aspx的程序 using System;

非专业码农 JAVA学习笔记 3 抽象、封装和类(1)

抽象.封装和类(1)待续 首先声明,今天接了太多个电话,两个小时看书被打断多次,缩减为一个小时.不管了,走马观花也要看完几个小节: (一)抽象与封装:抽象-抽取和研究实际性问题加以考察(抽象-尼玛抽出对象…) 封装:相关操作封存在命名空间.类等 (二)java的类: 1.系统定义的类(用于import中引入) 类名 作用 Java.lang 语言包,默认加载 Java.io, In out:文件数据流操作产生的输入输出流 Java.util 低级工具,如时间data类,变成数组vector类,h

jQuery Ajax封装通用类 (linjq)

jQuery Ajax封装通用类 (linjq) $(function(){ /** * ajax封装 * url 发送请求的地址 * data 发送到服务器的数据,数组存储,如:{"date": new Date().getTime(), "state": 1} * async 默认值: true.默认设置下,所有请求均为异步请求.如果需要发送同步请求,请将此选项设置为 false. * 注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行. * t

【ASP.NET 基础】Page类和回调技术

Page 类有一个 IsPostBack 属性,这个属性用来指示当前页面是第一次加载还是响应了页面上某个控件的服务器事件导致回发而加载. 1.asp.net页面的声明周期 asp.net页面运行的时候将经历一个声明周期,这个生命周期中会进行一系列的操作,调用一系列的方法.了解asp.net页面的生命周期对于精确控制页面的控件呈现方式和行为非常重要. 一般说来一个常规页面要经历如下几个生命周期阶段:  阶段  说明  页请求  页请求发生在页生命周期开始之前.用户请求页时,ASP.NET 将确定是

简易高重用的jdbcutils工具封装实现类以及简易连接池实现

由于现在发现做个小项目都是导入n多的依赖包,很烦琐,只想快点开发完一个个的小需求项目,这个时候真心不想用框架,只能自己写个jdbcutils,虽然网上有很多有apache的,阿里的,但是感觉用过后都不怎么顺手,然后自己花了点时间写个新的,不喜勿喷 1.我们要写个resultset集合转成bean的回调接口,这个用过spring jdbc的人都知道这玩意 package org.framework.mvc.jdbc.bean; import java.sql.ResultSet; import j

iOS开发—音频的播放的简单介绍和封装工具类

iOS开发—音频的播放的简单介绍和封装工具类 一.音效的播放简单介绍 简单来说,音频可以分为2种 (1)音效 又称“短音频”,通常在程序中的播放时长为1~2秒 在应用程序中起到点缀效果,提升整体用户体验 (2)音乐 比如游戏中的“背景音乐”,一般播放时间较长 框架:播放音频需要用到AVFoundation.framework框架 二.音效的播放 1.获得音效文件的路径 NSURL *url = [[NSBundle mainBundle] URLForResource:@"m_03.wav&qu

微信公众号开发系列-Http请求封装基类

HttpHelper请求封装基类,支持get请求和POS请求,方便微信开发接口交互,为后面接口交互做准备. 1.HttpHelper帮助基类 [csharp] view plaincopy using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Net; using System.Net.Security; namespa