来自jeecms的分页代码,感觉不错,包含了一般的分页信息,list属性对于one to many也适用:
Paginable.java
view plaincopy to clipboardprint?
package page;
/**
* 可分页接口
*
* @author liufang
*
*/
public interface Paginable {
/**
* 总记录数
*
* @return
*/
public int getTotalCount();
/**
* 总页数
*
* @return
*/
public int getTotalPage();
/**
* 每页记录数
*
* @return
*/
public int getPageSize();
/**
* 当前页号
*
* @return
*/
public int getPageNo();
/**
* 是否第一页
*
* @return
*/
public boolean isFirstPage();
/**
* 是否最后一页
*
* @return
*/
public boolean isLastPage();
/**
* 返回下页的页号
*/
public int getNextPage();
/**
* 返回上页的页号
*/
public int getPrePage();
}
package page;
/**
* 可分页接口
*
* @author liufang
*
*/
public interface Paginable {
/**
* 总记录数
*
* @return
*/
public int getTotalCount();
/**
* 总页数
*
* @return
*/
public int getTotalPage();
/**
* 每页记录数
*
* @return
*/
public int getPageSize();
/**
* 当前页号
*
* @return
*/
public int getPageNo();
/**
* 是否第一页
*
* @return
*/
public boolean isFirstPage();
/**
* 是否最后一页
*
* @return
*/
public boolean isLastPage();
/**
* 返回下页的页号
*/
public int getNextPage();
/**
* 返回上页的页号
*/
public int getPrePage();
}
SimplePage.java
view plaincopy to clipboardprint?
package page;
public class SimplePage implements Paginable {
private static final long serialVersionUID = 1L;
public static final int DEF_COUNT = 20;
public SimplePage() {
}
public SimplePage(int pageNo, int pageSize, int totalCount) {
if (totalCount <= 0) {
this.totalCount = 0;
} else {
this.totalCount = totalCount;
}
if (pageSize <= 0) {
this.pageSize = DEF_COUNT;
} else {
this.pageSize = pageSize;
}
if (pageNo <= 0) {
this.pageNo = 1;
} else {
this.pageNo = pageNo;
}
if ((this.pageNo - 1) * this.pageSize >= totalCount) {
this.pageNo = totalCount / pageSize;
}
}
/**
* 调整分页参数,使合理化
*/
public void adjustPage() {
if (totalCount <= 0) {
totalCount = 0;
}
if (pageSize <= 0) {
pageSize = DEF_COUNT;
}
if (pageNo <= 0) {
pageNo = 1;
}
if ((pageNo - 1) * pageSize >= totalCount) {
pageNo = totalCount / pageSize;
}
}
public int getPageNo() {
return pageNo;
}
public int getPageSize() {
return pageSize;
}
public int getTotalCount() {
return totalCount;
}
public int getTotalPage() {
int totalPage = totalCount / pageSize;
if (totalCount % pageSize != 0 || totalPage == 0) {
totalPage++;
}
return totalPage;
}
public boolean isFirstPage() {
return pageNo <= 1;
}
public boolean isLastPage() {
return pageNo >= getTotalPage();
}
public int getNextPage() {
if (isLastPage()) {
return pageNo;
} else {
return pageNo + 1;
}
}
public int getPrePage() {
if (isFirstPage()) {
return pageNo;
} else {
return pageNo - 1;
}
}
protected int totalCount = 0;
protected int pageSize = 20;
protected int pageNo = 1;
public void setTotalCount(int totalCount) {
this.totalCount = totalCount;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public void setPageNo(int pageNo) {
this.pageNo = pageNo;
}
}
package page;
public class SimplePage implements Paginable {
private static final long serialVersionUID = 1L;
public static final int DEF_COUNT = 20;
public SimplePage() {
}
public SimplePage(int pageNo, int pageSize, int totalCount) {
if (totalCount <= 0) {
this.totalCount = 0;
} else {
this.totalCount = totalCount;
}
if (pageSize <= 0) {
this.pageSize = DEF_COUNT;
} else {
this.pageSize = pageSize;
}
if (pageNo <= 0) {
this.pageNo = 1;
} else {
this.pageNo = pageNo;
}
if ((this.pageNo - 1) * this.pageSize >= totalCount) {
this.pageNo = totalCount / pageSize;
}
}
/**
* 调整分页参数,使合理化
*/
public void adjustPage() {
if (totalCount <= 0) {
totalCount = 0;
}
if (pageSize <= 0) {
pageSize = DEF_COUNT;
}
if (pageNo <= 0) {
pageNo = 1;
}
if ((pageNo - 1) * pageSize >= totalCount) {
pageNo = totalCount / pageSize;
}
}
public int getPageNo() {
return pageNo;
}
public int getPageSize() {
return pageSize;
}
public int getTotalCount() {
return totalCount;
}
public int getTotalPage() {
int totalPage = totalCount / pageSize;
if (totalCount % pageSize != 0 || totalPage == 0) {
totalPage++;
}
return totalPage;
}
public boolean isFirstPage() {
return pageNo <= 1;
}
public boolean isLastPage() {
return pageNo >= getTotalPage();
}
public int getNextPage() {
if (isLastPage()) {
return pageNo;
} else {
return pageNo + 1;
}
}
public int getPrePage() {
if (isFirstPage()) {
return pageNo;
} else {
return pageNo - 1;
}
}
protected int totalCount = 0;
protected int pageSize = 20;
protected int pageNo = 1;
public void setTotalCount(int totalCount) {
this.totalCount = totalCount;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public void setPageNo(int pageNo) {
this.pageNo = pageNo;
}
}
Pagination.java
view plaincopy to clipboardprint?
package page;
import java.util.List;
import java.io.Serializable;
@SuppressWarnings("serial")
public class Pagination<T extends Serializable> extends SimplePage implements java.io.Serializable,
Paginable {
public Pagination() {
}
public Pagination(int pageNo, int pageSize, int totalCount) {
super(pageNo, pageSize, totalCount);
}
public Pagination(int pageNo, int pageSize, int totalCount, List<T> list) {
super(pageNo, pageSize, totalCount);
this.list = list;
}
public int getFirstResult() {
return (pageNo - 1) * pageSize;
}
/**
* 当前页的数据
*/
private List<T> list;
public List<T> getList() {
return list;
}
public void setList(List<T> list) {
this.list = list;
}
}
package page;
import java.util.List;
import java.io.Serializable;
@SuppressWarnings("serial")
public class Pagination<T extends Serializable> extends SimplePage implements java.io.Serializable,
Paginable {
public Pagination() {
}
public Pagination(int pageNo, int pageSize, int totalCount) {
super(pageNo, pageSize, totalCount);
}
public Pagination(int pageNo, int pageSize, int totalCount, List<T> list) {
super(pageNo, pageSize, totalCount);
this.list = list;
}
public int getFirstResult() {
return (pageNo - 1) * pageSize;
}
/**
* 当前页的数据
*/
private List<T> list;
public List<T> getList() {
return list;
}
public void setList(List<T> list) {
this.list = list;
}
}
分页的时候使用Pagination类就可以了~```
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/adaikiss/archive/2009/08/25/4483902.aspx
分享到:
相关推荐
自定义的漂亮分页标签,支持上下翻页,直接跳转指定页
宏`genPagination`是为分页而创建的核心组件,其参数包括: - `url`:指定的URL,用于构建页面链接。 - `totalPages`:总页数。 - `currPage`:当前页,默认值为1。 - `showPageNum`:显示的页数,默认值为10。 - `...
综合上述信息,这个压缩包可能包含了一个基于自定义标签实现的分页库,该库支持通过反射来动态配置分页参数,并且能够高效地处理ResultSet,实现数据库查询的分页。使用"fenPageTld"这个名字的文件很可能是该分页库...
通常,这个类会有一个方法(如`getPaginationHtml()`),返回HTML代码,包含了分页的“上一页”、“下一页”按钮以及页码列表。开发者可以在模板中自由定制这些元素的样式、布局和交互效果。 另一个关键文件`使用...
Jeecms2012的后台管理界面简洁明了,主要功能包括: - **首页**:展示系统状态概览。 - **栏目**:管理网站的栏目结构。 - **内容**:发布和编辑文章、产品等内容。 - **模版**:编辑和设置网站的模板样式。 - **...
五、面向未来的过渡,JEECMS v2.3.2 Final版是JEECMS面世以来发布的第一个正式版本,具有更大的灵活性和稳定性;-一、系统内核完全开源,为用户提供透明的管理平台,为java初学者提供良好的学习平台; 二、核心模板...
### Jeecms数据库表结构详解 #### 一、概述 Jeecms是一款基于Java技术的开源内容管理系统(Content Management System, CMS),广泛应用于企业网站、新闻门户等网站平台建设。其核心优势在于高度可定制化与模块化...
- **分页处理**:Jeecms的分页标签能轻松实现内容的分页显示。 5. **学习资源** - `Freemaker_入门+深入+开发指南+学习笔记.doc`:这份文档提供了从基础到高级的Freemarker学习路径,包括基本语法、模板设计原则...
这个“分页操作代码(全)及jar.zip”压缩包提供了一套完整的Java EE分页解决方案,包括数据库操作、页面交互以及必要的依赖库。下面将详细阐述其中涉及的关键知识点。 首先,分页的核心在于如何计算页码和每页显示...
Jeecms提供了丰富的自定义标签,如文章列表标签、分页标签、评论标签等。通过这些标签,开发者可以方便地在模板中调用内容数据,减少直接编写Java代码的需求。 6. **页面布局与组件** 模板的布局由头部、导航、...
1. **完全开源**:Jeecms 的内核是开放源代码的,这为开发者提供了透明的管理平台,同时也为初学者提供了一个学习 Java 的良好环境。 2. **模板管理**:核心模板以文件形式存储,支持模板的导入/导出,便于设计、...
对于技术达人来说,jeecms不仅提供全部源码,而且在研发之初即全面的考虑了二次开发的高效性和代码的高移植性,是一款非常容易上手和二次开发的产品。 JEECMSv8版本是一款集PC互联网、移动互联网和微信网站于一体...
jeecms v9.3 正式版 源码包 更新日志 1、栏目添加选择模型模板只选择一个报错 2、内容复用待审核查询报错(开源版) 3、根栏目添加内容报错 4、后台页面样式调整 5、后台编辑器分页问题 7、数据统计今日...
### JEECMS3.x模板标签使用说明 #### 页面处理时间标签 **标签示例:** `[@process_time/]` 此标签用于展示当前页面的加载处理时间。它可以帮助开发者和管理员了解页面加载速度,并据此优化系统性能。 #### 页面...
Jeecms v2012版是一款集新闻管理、图库管理、视频管理、下载系统、作品管理、产品发布及留言板于一体的综合性CMS系统。从2012版起,jeecms将更注重用户体验、系统性能和实际应用的研发,让jeecms的适用范围更广、...
### JEECMS 2012 系统使用手册核心知识点总结 #### 一、系统简介 JEECMS是一款基于Java EE技术栈构建的内容管理系统(Content Management System, CMS),旨在为用户提供一套完整且易于操作的网站建设解决方案。该...
首先,我们可以看到JEECMS数据库设计中包含了多个表的设计说明。下面将逐个分析这些表及其字段,以及可能涉及的知识点。 1. jc_acquisitionCMS表 - acquisition_id: 采集id,主键,通常使用int(11)表示。 - site_...
### Jeecms2012版标签学习手册详解 #### 一、2012版关键字标签[@cms_tag_list] **关键词标签(Tag列表标签)**主要用于在网站中展示热门或相关的标签列表,帮助用户快速定位感兴趣的内容。该标签允许自定义显示的...
jc_acquisitionCMS表是用于管理数据采集任务的核心表,该表详细记录了每个采集任务的相关配置信息,包括但不限于采集任务的名称、开始与结束时间、当前状态等关键属性。 **2. 字段解析** - **acquisition_id**:...