`
- 浏览:
254259 次
- 性别:
- 来自:
上海
-
package org.vanpull.frame.commons.page;

import java.lang.reflect.Method;


/** *//**
*
* <p>
* Title:[得到分页内容]
* </p>
* <p>
* Description: [得到pageBar内容]
* </p>
* <p>
* Copyright 2009 Huyvanpull Co., Ltd.
* </p>
* <p>
* All right reserved.
* </p>
*
* @version 1.0
*
* <p>
* Created by [Huyvanpull] [Jul 1, 2009]
* </p>
* <p>
* Midified by [修改人] [修改时间]
* </p>
*
*/
public class PageBarContent


{

/** *//** 验证ThemeClass */
private final String packageReg = "^([a-z]{1,32}\\.){1,32}([A-Z](\\w){1,32})$";
public String getThemeHtml(PageBarBean pgb)

{
return this.getThemeHtml(pgb.getTheme(), pgb.getTotalRows(), pgb
.getPageSize(), pgb.getTotalPages(), pgb.getCurrentPage(), pgb
.getFirstPageURL(), pgb.getBackPageURL(), pgb.getNextPageURL(),
pgb.getEndPageURL());
}

/** *//**
*
* <p>
* Description:[本方法用于得到指定theme的HTML代码,用户可以自定义theme]
* </p>
* <p>
* Created by [Huyvanpull] [May 12, 2009]
* </p>
* <p>
* Midified by [修改人] [修改时间]
* </p>
*
* @param pageBarBean
*/
@SuppressWarnings("unchecked")
public String getThemeHtml(String theme, int totalRows, int pageSize,
int totalPages, int currentPage, String firstPageUrl,
String backPageUrl, String nextPageUrl, String lastPageUrl)

{
ThemeMapping themeMapping = new ThemeMapping();
String themeClassName = null;

/** *//** 如果themeName包含在themeMapping内,那么得到className */
if (themeMapping.isConstaint(theme))

{
themeClassName = themeMapping.getThemeClass(theme);
}

/** *//**
* 如果themeName不包含在themeMapping内,
* 那么认为theme是一个用户提供的已经实现ThemeInterface接口的实现类
*/
else

{
themeClassName = theme;
}
String barHTML = "";

/** *//** 用正则表达试匹配,是否是一个合法的类路径 */
if (!themeClassName.matches(this.packageReg))

{
barHTML = "ThemeClass类路径不合法";
return barHTML;
}

/** *//** 使用反射机制得到ThemeClass的分页码代码开始 *************** */

/** *//** 指定方法的参数列表 ************************* */

Class[] types =
{ int.class, int.class, int.class, int.class,
String.class, String.class, String.class, String.class };
try

{

/** *//** 通过反射得到指定的Class **************** */
Class clazz = Class.forName(themeClassName);

/** *//** 通过Class得到指定的方法 **************** */
Method method = clazz.getDeclaredMethod("getPageBarHtml", types);

/** *//** 通过反射得调用方法得到结果 ************** */
barHTML = (String) method.invoke(clazz.newInstance(), totalRows,
pageSize, totalPages, currentPage, firstPageUrl,
backPageUrl, nextPageUrl, lastPageUrl);
}

/** *//** 找不到指定的类时异常 ********** */
catch (ClassNotFoundException cnfe)

{
barHTML = "没有找到类" + themeClassName;
}

/** *//** 找不到实现接口的方法时 ******** */
catch (NoSuchMethodException nsme)

{
barHTML = themeClassName + "不是ThemeInterface的实现类";
}

/** *//** 其它异常,供用户修改 ********** */
catch (Exception exce)

{
barHTML = exce.toString();
}

/** *//** 使用反射机制得到ThemeClass的分页码代码结束 *************** */
return barHTML;
}
}
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
分页器是Swiper的一个关键组成部分,它提供了用户导航不同幻灯片的直观方式。 **一、Swiper分页器的基本概念** Swiper的分页器(pagination)默认情况下是一组小圆点,每个圆点代表一个幻灯片。当用户滑动到某个...
在描述中提到的分页器返回的格式,是常见的分页链接布局,其中“[首页]”、“[上一页]”、“[1]”、“[2]”、“[3]”、“[..]”、“[20]”、“[下一页]”和“[尾页]”分别代表了这些功能。 在`pager.php`中,我们...
在Web开发中,分页器是用户界面中不可或缺的一部分,特别是在数据量庞大的场景下,如电商网站的商品列表、社交媒体的时间线等。"web前端完美分页器"旨在提供一种高效、用户友好且易于定制的解决方案,以提升用户体验...
在网页开发中,分页器是一种常见的用户界面组件,它帮助用户在大量数据或内容中进行导航,分段查看信息,提高用户体验。标题提到的"带有省略标志的分页器"是一种特殊的分页设计,它通常用于显示较多页码时,通过省略...
在Vue.js开发中,分页器组件是一种常见的UI元素,用于在大量数据中实现分页浏览,提升用户体验。本项目是基于Vue实现的一个分页器组件,具备设置初始页码和输入页码直接跳转的功能。 1. **Vue.js基础知识**: Vue....
在网页开发中,分页器(Pagination)是一个重要的组件,用于在大量数据中分段展示内容,提升用户体验。本资源提供了一个基于jQuery的分页器插件,它集成了HTML、CSS3和jQuery代码,使得前端开发者能够快速、便捷地在...
一个基本的自定义分页器示例可能包括以下几个部分: - HTML结构:创建一个容器用于存放自定义分页器的元素。 - CSS样式:定义自定义分页器的外观。 - JavaScript初始化:设置Swiper实例,并指定分页器的配置。 ...
组件的模板部分将包含分页器的HTML结构,可以利用`v-for`指令来渲染分页链接。 5. **数据绑定与事件处理**:Vue的数据绑定和事件处理机制使得我们可以轻松地连接用户界面和数据模型。例如,当用户点击分页链接时,...
手持分页器的核心组成部分包括把握部、分页部和分别部。把握部内含电源,为整个设备提供必要的电力支持。分页部由搓纸轮、驱动部和支架组成,搓纸轮悬挂在待分页纸张的上方,由驱动部驱动旋转,将纸张送至分别部。...
在jQuery分页实现中,我们通常会创建一个分页器UI,展示当前页码和可选择的页码链接。用户点击这些链接时,会触发回调函数,该函数负责更新页面内容以显示所选页的数据。在这个案例中,`pagination.js`很可能就是...
Bootstrap 和 SeaJS 结合的分页器是一种在 Web 开发中实现高效页面导航的方法,尤其适用于数据量大、需要分页展示的场景。Bootstrap 是一个流行的前端开发框架,提供了丰富的 UI 组件,如按钮、表单、网格系统等,而...
Java Web分页管理器是一种用于处理大量数据分页显示的技术,尤其在与微软数据库如SQL Server配合使用时,能够高效地提升用户体验。在Web应用程序中,分页是必不可少的功能,尤其是在展示诸如用户列表、订单历史或者...
**标题:** Pagination.js分页器案例 **描述:** 本案例是关于使用jQuery插件Pagination.js实现前端分页功能的示例。Pagination.js是一个轻量级、高度可定制的JavaScript库,专门用于创建高效的前端分页组件。通过这...
它的分页组件(Pagination)是其UI库的一部分,提供了一套美观且响应式的分页解决方案。Bootstrap的分页插件通过简单的HTML和CSS就能实现功能完善的分页效果,同时支持自定义样式和事件监听。例如,你可以通过以下...
在大数据量的列表展示中,分页器是必不可少的组件,它能帮助用户逐页浏览内容。实现分页器通常涉及以下步骤: 1. 计算总页数:根据数据总数和每页显示的数量计算。 2. 用户操作:响应用户点击“上一页”、“下一页”...
在分页器组件的脚本部分,主要涵盖了几个关键的逻辑处理函数。`_init_list1`方法用于初始化新闻列表数据,通过异步获取新闻数据后,计算出总页数,并设置当前页码为第一页。`pageStyle`方法用于动态计算分页器组件的...
6. **分页器源码**:这部分包含了创建分页器UI、处理分页逻辑的JavaScript代码,以及与后端交互的Ajax请求。需要注意的是,前端分页器应有错误处理机制,比如处理网络异常或服务器返回错误。 综上所述,本示例提供...
在网页开发中,分页器是一种常见的用户界面组件,它帮助用户在大量数据中分步骤浏览,提升用户体验。本文将详细介绍一个使用JavaScript实现的简单分页器插件的代码实例。 首先,为了实现这个分页器,我们需要引入...
4. **绑定事件**:使用jQuery的`.on()`方法为分页按钮添加点击事件监听器。当用户点击分页按钮时,执行相应的分页逻辑。 5. **分页逻辑**:当点击分页按钮时,根据当前页码更新显示的数据。这通常涉及到对数据数组...
在不重新加载整个网页的情况下,Ajax分页可以仅更新页面中与分页内容相关的部分,使得数据加载更为迅速,减少了网络带宽的消耗。 Ajax分页的基本工作流程如下: 1. 用户点击分页链接或按钮。 2. JavaScript通过...