`
superyang
  • 浏览: 22901 次
  • 性别: Icon_minigender_2
  • 来自: 广州
社区版块
存档分类
最新评论

Pager

 
阅读更多
package com.hk.app.meet.util;

import com.sun.org.apache.bcel.internal.Constants;

public class Pager {
private int current;// 当前记录的位置
private int size; // 数据总记录
private int length;// 每页显示的记录条数
private String url;// URL 调用Action里分页请求的URL
private String pageHeader;// 导航条前文字

private int MAX_PAGE_INDEX=10;
private int PAGE_SIZE=10;

public Pager(int offset, int size, int length, String url, String pageHeader) {
this.current = offset;
this.size = size;
this.length = length;
this.url = url;
this.pageHeader = pageHeader;
}

public int getOffset() {
return current;
}

public void setOffset(int offset) {
this.current = offset;
}

public int getSize() {
return size;
}

public void setSize(int size) {
this.size = size;
}

public int getLength() {
return length;
}

public void setLength(int length) {
this.length = length;
}

public String getUrl() {
return url;
}

public void setUrl(String url) {
this.url = url;
}

public String getPageHeader() {
return pageHeader;
}

public void setPageHeader(String pageHeader) {
this.pageHeader = pageHeader;
}

/**
* 返回分页导航条
*
*/

public String getPageNavigation() {
String pageNavigation = "";

if (size > length) {
String pref; // 前缀
if (url.indexOf("?") > -1) {

pref = "&";
} else {

pref = "?";
}

if (pageHeader != null && pageHeader.length() > 0) {
pageNavigation = pageHeader + " : ";
}
// 包含“<<”(第一页)和“<”(前一页)
if (current > 0) {
pageNavigation += "<a href='" + url + pref
+ "current=0'>[首页]</a>\n" + "<a href='" + url + pref
+ "current=" + (current - length) + "'>[<]</a>\n";
}
// 导航条中,排头的那一页的current值
int startOffset;

int radius = MAX_PAGE_INDEX / 2 * length;

if (current < radius
|| this.pageCount() <= MAX_PAGE_INDEX) {

startOffset = 0;
} else if (current < size - radius) {
startOffset = current - radius;
} else {
startOffset = (size / length - MAX_PAGE_INDEX)
* length;
}
for (int i = startOffset; i < size
&& i < startOffset + MAX_PAGE_INDEX * length; i += length) {
if (i == current) {
// 当前页号,加粗显示
pageNavigation += "<b>" + (i / length + 1) + "</b>\n";
} else {

pageNavigation += "<a href='" + url + pref + "current=" + i
+ "'>" + (i / length + 1) + "</a>\n";
}
}
// (下一页)和“>>”(最后一页)
if (current < size - length) {
pageNavigation += "<a href='" + url + pref + "current="
+ (current + length) + "'>[>]</a>\n" + "<a href='"
+ url + pref + "current=" + lastPageOffset()
+ "'>[尾页]</a>\n";
}

return pageNavigation;
}

else {
return "";
}
// return "";
}

/**
* 返回分页后的总页数
*
*/
public int pageCount() {
int pagecount = 0;
if (size % length == 0) {
pagecount = size / length;
} else {
pagecount = size / length + 1;
}
return pagecount;
}

/**
* 返回最后一页的起始记录位置
*/
public int lastPageOffset() {
return size - lastPageSize();
}

/**
* 返回最后一页的记录数
*/
public int lastPageSize() {
int lastpagesize = 0;
if (size % length == 0) {
lastpagesize = length;
} else {
lastpagesize = size % length;
}
return lastpagesize;
}
}
分享到:
评论

相关推荐

    ASP.NET PagerControl

    ASP.NET的PagerControl是网页开发中用于实现分页功能的一种自定义控件。在Web应用程序中,当数据量庞大时,通常会采用分页来提高用户体验,避免一次性加载大量数据导致页面加载慢或者用户浏览不便。这个控件仅负责...

    使用pager-taglib分页完整例子

    例如,`&lt;pager:pagelist&gt;`用于显示分页链接,`&lt;pager:page&gt;`则用来跳转到特定页码。通过配置这些标签,开发者可以轻松定制分页样式,包括页码展示、上一页/下一页按钮、总页数显示等。 为了使用`pager-taglib`,你...

    WHC.Pager.WinControl.dll

    标题中的“WHC.Pager.WinControl.dll”是一个动态链接库(DLL)文件,它在Windows环境中扮演着重要的角色。DLL文件通常包含可被其他应用程序调用的函数和资源,这里是用于实现分页功能的控件。这个特定的DLL可能是...

    pager-taglib 分页标签使用

    `pager-taglib`是Java Web开发中常用的分页标签库,它简化了在JSP页面上实现分页功能的过程。这个标签库通常与Spring MVC、Struts2等框架结合使用,提供了一种声明式的方式来展示数据分页。下面将详细解释`pager-...

    WHC.Pager.WinControl.dll winform分页空间下载

    本话题主要围绕"WHC.Pager.WinControl.dll"这个组件展开,它是一个专为WinForm设计的分页控件,旨在帮助开发者实现高效、便捷的数据分页展示功能。下面将详细介绍这个控件的使用方法、特点以及其在实际项目中的应用...

    Pager(通过的分页工具类)

    标题中的“Pager(通过的分页工具类)”显然指的是一个用于实现分页功能的Java类。在这个类中,开发者通常会封装分页操作的相关逻辑,以便在各种场景下复用。现在我们来详细探讨一下分页的基本概念、设计原则以及...

    z-pager.js分页插件.zip

    《z-pager.js分页插件详解》 在网页开发中,当数据量过大时,为了提高用户体验,通常会采用分页的方式来展示信息。这里我们要介绍的是一款名为`z-pager.js`的分页插件,它能帮助开发者快速、高效地实现网页分页功能...

    Pager Tag Lib分页操作源码

    Pager Tag Lib的核心是提供了一组预定义的JSP标签,如`&lt;pager:pagelinks&gt;`和`&lt;pager:prevNext&gt;`等,这些标签可以直接在JSP页面中使用,以实现分页功能。例如,`&lt;pager:pagelinks&gt;`标签可以自动生成页面链接,而`...

    pager的js和css文件

    **标题解析:** "pager的js和css文件" 这个标题表明我们正在讨论一个用于分页功能的前端资源包,包含JavaScript (pager.js) 和 Cascading Style Sheets (CSS) (pager.css) 文件。在网页开发中,分页是常见的一种用户...

    pager2.0(asp.net分页组件)

    **ASP.NET分页组件——Pager2.0** 在ASP.NET开发中,数据展示往往需要处理大量的信息,这时分页功能显得尤为重要。Pager2.0是一款高效、易用的分页控件,它能够帮助开发者轻松地在网页上实现数据的分页显示,提升...

    jsp pager-taglib分页资料

    2. **使用分页标签**:`pager-taglib`提供了一些关键的标签,如`&lt; pager:table &gt;`、`&lt; pager:page &gt;`和`&lt; pager:nav &gt;`等。`&lt; pager:table &gt;`用于包裹整个表格,`&lt; pager:page &gt;`定义每一页的内容,`&lt; pager:nav &gt;`...

    pager-taglib-2.0完整部署运行

    "pager-taglib-2.0完整部署运行"这个标题指的是一个特定的Java Web分页库的部署过程,它主要用于在Web应用中实现高效且灵活的分页功能。Pager Taglib是基于JSP标准标签库(JSTL)的一个扩展,为开发者提供了便捷的...

    pager-taglib-2.0及使用方法

    **Pager Taglib 2.0详解与使用指南** Pager Taglib是Java Web开发中的一个强大工具,主要用于实现页面的分页功能。它提供了一组自定义的JSP标签,简化了在网页上创建分页链接的过程,使得开发者可以更加专注于业务...

    pager-taglib-2.0

    《Java分页标签库——pager-taglib-2.0详解》 在Web开发中,数据分页是一项必不可少的功能,它能够有效地管理大量数据,提高页面加载速度,优化用户体验。Java中,`pager-taglib-2.0`是一个专门用于处理分页的标签...

    pager-taglib.jar包下载

    **标题:“pager-taglib.jar包下载”** 在Java Web开发中,分页是常见的功能需求,用于处理大量的数据展示,避免一次性加载所有数据导致页面响应慢或者内存压力过大。`pager-taglib.jar`是一个专为Java Web应用设计...

    pager-taglib.jar

    Pager Taglib通过提供自定义的JSP标签,比如`&lt;pager:page&gt;`、`&lt;pager:first&gt;`、`&lt;pager:last&gt;`、`&lt;pager:prev&gt;`和`&lt;pager:next&gt;`,简化了以上步骤。使用这些标签,开发者只需在JSP页面中添加适当的标签,然后配置...

    pager标签库使用详解

    ### pager标签库使用详解 #### 一、简介 `Pager-taglib`是一个专门为JSP页面设计的标签库,用于实现多样化的分页显示效果。它不仅内置了多种分页样式,还支持用户自定义分页样式,使得开发人员能够轻松地在网页中...

    网页Flash文章阅读器结合FlashPager

    网页Flash文章阅读器结合FlashPager是一种在线文档展示技术,它为用户提供了一种类似于百度文库的阅读体验。FlashPager的设计灵感来源于实体书籍的翻页效果,通过动态的SWF(ShockWave Flash)文件来实现页面的平滑...

    jquery-pager-1.0

    《jQuery分页插件jQuery-pager-1.0详解》 在Web开发中,当页面数据量过大时,为了提高用户体验,通常会采用分页显示的方式。jQuery-pager-1.0是一个轻量级的jQuery分页插件,它使得在网页上实现分页功能变得简单...

Global site tag (gtag.js) - Google Analytics