动态分页类: Cls_page.java

 package pagination;

 public class Cls_page {
private int nums;// 总条目数
private int current_page;// 当前被选中的页码
private int sub_pages;// 每次显示的页数
private int pageNums;// 总页数
private int[] page_array;// 用来构造分页的数组
private String subPage_link;// 每个分页的链接 /**
*
* Cls_page是的构造函数,用来在创建类的时候自动运行.
*
* @disNums 列表记录显示条数
* @nums 总条目数
* @current_page 当前被选中的页
* @sub_pages 每次显示的页数
* @subPage_link 每个分页的链接
*
* 函数subPageCss(): 当前第1/453页 [首页] [上页] 1 2 3 4 5 6 7 8 9 10
* [下页] [尾页]
*/ public Cls_page(int disNums, int nums, int current_page, int sub_pages,
String subPage_link) {
this.nums = nums;
if (current_page == 0) {
this.current_page = 1;
} else {
this.current_page = current_page;
}
this.sub_pages = sub_pages;
this.page_array = new int[this.sub_pages];
int nums2 = nums;
int disNums2 = disNums;
this.pageNums = (nums2 / disNums2);
this.subPage_link = subPage_link; } /*
* 用来给建立分页的数组初始化的函数。
*/
public int[] initarray() {
for (int i = 0; i < this.sub_pages; i++) {
this.page_array[i] = i;
}
return this.page_array;
} /*
* construct_num_Page该函数使用来构造显示的条目 即使:[1][2][3][4][5][6][7][8][9][10]
*/
public int[] construct_num_page() {
int[] current_array;
if (this.pageNums < this.sub_pages) {
current_array = new int[this.pageNums];
for (int i = 0; i < this.pageNums; i++) {
current_array[i] = i + 1;
}
} else {
current_array = this.initarray(); if (this.current_page <= 3) {
for (int i = 0; i < current_array.length; i++) {
current_array[i] = i + 1;
}
} else if (this.current_page <= this.pageNums
&& this.current_page > this.pageNums - this.sub_pages + 1) {
for (int i = 0; i < current_array.length; i++) {
current_array[i] = (this.pageNums) - (this.sub_pages) + 1
+ i;
} } else {
for (int i = 0; i < current_array.length; i++) {
current_array[i] = this.current_page - 2 + i; }
} } return current_array;
} /*
* 构造分页 当前第1/453页 [首页] [上页] 1 2 3 4 5 6 7 8 9 10 [下页] [尾页]
*/ public String subPageCss() {
String subPageCssStr = "";
subPageCssStr += "当前第" + this.current_page + "/" + this.pageNums + "页 ";
if (this.current_page > 1) {
String firstPageUrl = this.subPage_link + "1";
String prewPageUrl = this.subPage_link + (this.current_page - 1);
subPageCssStr += "[<a href='" + firstPageUrl + "'>首页</a>] ";
subPageCssStr += "[<a href='" + prewPageUrl + "'>上一页</a>] ";
} else {
subPageCssStr += "[首页] ";
subPageCssStr += "[上一页] ";
} int[] a = this.construct_num_page(); for (int i = 0; i < a.length; i++) {
int s = a[i];
if (s == this.current_page) {
subPageCssStr += "[<span style='color:red;font-weight:bold;'>"
+ s + "</span>]";
} else {
String url = this.subPage_link + s;
subPageCssStr += "[<a href='" + url + "'>" + s + "</a>]"; }
} if (this.current_page < this.pageNums) {
String lastPageUrl = this.subPage_link + this.pageNums;
String nextPageUrl = this.subPage_link + (this.current_page + 1);
subPageCssStr += " [<a href='" + nextPageUrl + "'>下一页</a>] ";
subPageCssStr += "[<a href='" + lastPageUrl + "'>尾页</a>] ";
} else {
subPageCssStr += "[下一页] ";
subPageCssStr += "[尾页] ";
}
subPageCssStr += " 共" + this.nums + "条记录"; return subPageCssStr;
} }

 调用页面:index.jsp

 <%@ page language="java" import="java.util.*,pagination.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
</head> <body> JAVA动态分页类调用<hr/>
<%
String p = request.getParameter("p") == null ? "1" : request.getParameter("p");//获取页码
int pagenum = Integer.parseInt(p);//转为int类型
int limit = 10;//显示条数
int start = (pagenum - 1) * limit;//开始位置
int nums = 400;//总条目数 //输出测试
for (int i = start; i < start + limit; i++) {
out.print(i + 1 + ".................................................<br/>");
} //调用分页类 new Cls_page(列表记录显示条数, 记录总条数, 当前被选中的页码, 页码链接数,每个分页的路径)
Cls_page cls = new Cls_page(limit, nums, pagenum, 10,"index.jsp?p=");
out.print(cls.subPageCss());
%> </body>
</html>

运行结果:

JAVA动态分页类调用


31.................................................
32.................................................
33.................................................
34.................................................
35.................................................
36.................................................
37.................................................
38.................................................
39.................................................
40.................................................
当前第4/40页 [首页] [上一页] [2][3][4][5][6][7][8][9][10][11] [下一页] [尾页] 共400条记录

Java 动态分页类的更多相关文章

  1. DedeCMS织梦动态分页类,datalist标签使用实例

    <?php require_once(dirname(__FILE__)."/include/common.inc.php");//载入基础文件 require_once(D ...

  2. 初看Mybatis 源码 (二) Java动态代理类

    先抛出一个问题,用过Mybatis的都知道,我们只需要定义一个Dao的接口,在里面写上一些CRUD相关操作,然后配置一下sql映射文件,就可以达到调用接口中的方法,然后执行sql语句的效果,为什么呢? ...

  3. Java动态生成类以及动态添加属性

    有个技术实现需求:动态生成类,其中类中的属性来自参数对象中的全部属性以及来自参数对象properties文件. 那么技术实现支持:使用CGLib代理. 具体的实现步骤: 1.配置Maven文件: &l ...

  4. 【原】如何获取Java动态生成类?

    写作目的:Java大部分框架,如Spring,Hibernate等都会利用动态代理在程序运行的时候生成新的类, 有的时候为了学习,或者深入了解动态代理,想查看动态生成类的源代码究竟长怎么个样子, 通过 ...

  5. JAVA“动态”为类添加属性

    部分参考:http://www.cnblogs.com/zy2009/p/6725843.html pom.xml中添加: <dependency> <groupId>comm ...

  6. java动态编译类文件并加载到内存中

    如果你想在动态编译并加载了class后,能够用hibernate的数据访问接口以面向对象的方式来操作该class类,请参考这篇博文-http://www.cnblogs.com/anai/p/4270 ...

  7. php动态分页类

    <?php /** * 页面名称:cls_page.php */ class Page { private $each_disNums; //每页显示的条目数 private $nums; // ...

  8. Java动态调用类中方法

    在Java中,调用类的方法有两种方式:对于静态方法可以直接使用类名调用,对于非静态方法必须使用类的对象调用.反射机制提供了比较另类的调用方式,可以根据需要指定要调用的方法,而不必在编程时确定.调用的方 ...

  9. java 动态生成类再编译最后代理

    package spring.vhostall.com.proxy; public interface Store { public void sell(); } ------------------ ...

随机推荐

  1. 使用微信api接口开发的框架

    <?php/** * 微信公众平台API */class WeixinChat{ private $token; private $appid; private $appsecret; priv ...

  2. thinkphp中表有前缀名的时候申明模板的方法

    $Model=new \Home\Model\Stu_activityModel; $Model=D('Stu_activity');//错误的声明不了

  3. jQuery EasyUI 1.4.4 Combobox无法检索中文输入的问题

    在项目里使用了EasyUI的Combobox,当ComboBox的item是英文时,都能正常检索出对应项,但是如果使用中文输入法输入几个字母然后通过按shift键输入时,奇怪的事情发生了,combob ...

  4. new作为修饰符

    new 修饰符与 new 操作符是两个概念 new 修饰符用于声明类或类的成员,表示隐藏了基类中同名的成员.而new 操作符用于实例化一个类型 new 修饰符只能用于继承类,一般用于弥补基类设计的不足 ...

  5. 浅谈Exchange 2013开发-如何操作邮件的附件

    因为项目中客户有一个的要求,所以这个Exchange前段时间搞的我很是头疼,没接触过这个东西,但是现在看来,纸老虎一个.希望我的经验可以帮助初次接触它的人少走一些弯路! 简单介绍一下:客户要求在自己的 ...

  6. AlertDialog中EditText不能获取焦点以及不宽度不能自动铺满的完美解决方案

    问题分析: 因为 dialog的Attributes使用的默认的,其中一个属性就是:flags ,就是这个属性导致不能获取焦点,默认的是FLAG_NOT_FOCUSABLE,故名思义不能获取输入焦点, ...

  7. html5中的常用的库

    JQuery是继prototype之后又一个优秀的Javascript库.它是轻量级的js库 ,它兼容CSS3,还兼容各种浏览器(IE 6.0+, FF1.5+, Safari 2.0+, Opera ...

  8. Hibernate中的多对多关系详解(3)​

    前面两节我们讲到了一对一的关系,一对多,多对一的关系,相对来说,是比较简单的,但有时,我们也会遇到多对多的关系,比如说:角色与权限的关系,就是典型的多对多的关系,因此,我有必要对这种关系详解,以便大家 ...

  9. 30+最佳Ajax jQuery的自动完成插件的例子

    在这篇文章中,我们将介绍35个jQuery AJAX的自动完成提示例子. jQuery 的自动完成功能,使用户快速找到并选择一定的价值.每个人都想要快速和即时搜索输入栏位,因为这个原因,许 流行的搜索 ...

  10. Android UI基础教程 目录

    从csdn下载了这本英文版的书之后,又去京东搞了一个中文目录下来.对照着看. 话说,这本书绝对超值.有money的童鞋看完英文版记得去买中文版的~~ Android UI基础教程完整英文版 pdf+源 ...