- 浏览: 119646 次
- 性别:
- 来自: 湖南
文章分类
最新评论
-
一步一个天涯:
good.
tomcat配置热启动,我试过有用的方式 -
yuechen323:
哥们!!看了你博客的大部分文章,写的都非常的通俗易懂,谢谢~ ...
我在java中碰到的设计模式 -
悲剧了:
...
jstl
/**
* 封装分页逻辑
* @author Administrator
*
*/
public class PageModel<T> {
//结果集
private List<T> list;
//记录数
private int totalRecords;
//每页多少条数据
private int pageSize;
//第几页
private int pageNo;
/**
* 返回总页数
* @return
*/
public int getTotalPages() {
return (totalRecords + pageSize - 1) / pageSize;
}
/**
* 首页
* @return
*/
public int getTopPageNo() {
return 1;
}
/**
* 上一页
* @return
*/
public int getPreviousPageNo() {
if (this.pageNo <= 1) {
return 1;
}
return this.pageNo - 1;
}
/**
* 下一页
* @return
*/
public int getNextPageNo() {
if (this.pageNo >= getButtomPageNo()) {
return getButtomPageNo();
}
return this.pageNo + 1;
}
/**
* 尾页
* @return
*/
public int getButtomPageNo() {
return getTotalPages();
}
public List<T> getList() {
return list;
}
public void setList(List<T> list) {
this.list = list;
}
public int getTotalRecords() {
return totalRecords;
}
public void setTotalRecords(int totalRecords) {
this.totalRecords = totalRecords;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getPageNo() {
return pageNo;
}
public void setPageNo(int pageNo) {
this.pageNo = pageNo;
}
}
另一种写法:
public class PageUtils {
/**
* 默认第一页页码
*/
public static final int INDEX_PAGE_NUM = 1;
public final static int PAGE_SIZE = 15; // 默认分页大小
/**
* 计算页数
*/
public static int pageCount(int recordCount, int perPage) {
int pc = (int) Math.ceil(recordCount / (double) perPage);
if (pc == 0)
pc = 1;
return pc;
}
/**
* 计算查询时,数据当前位置(fromIndex)
*/
public static int fromIdx(int page, int fetchCount) {
return (page - INDEX_PAGE_NUM) * fetchCount;
}
/**
* 分页条
*
* @param currentPage
* 当前页数
* @param fetchCount
* 每页显示数
* @param recordCount
* 数据总数
* @param pagePath
* 页面路径
* @return
*/
public static String getPageStr(int currentPage, int fetchCount,
int recordCount, String fileName,String sufFix) {
// String fileName = pagePath.split("\\.")[0];
// String sufFix = "." + pagePath.split("\\.")[1];
StringBuffer result = new StringBuffer();
String blankStr = " ";
int maxLength = 4;
int pageCount = pageCount(recordCount, fetchCount);
if (pageCount > INDEX_PAGE_NUM) {
result.append("<span class='pagelink'>");
result.append("<a href='" + fileName + sufFix + "'>首页</a>");
if (currentPage > INDEX_PAGE_NUM) {
result.append(blankStr);
result.append("<a href='" + fileName);
if (currentPage - 1 != INDEX_PAGE_NUM) {
result.append("_" + (currentPage - 1));
}
result.append(sufFix + "'>上一页</a>");
}
result.append("</span>");
result.append(blankStr);
}
if (pageCount > INDEX_PAGE_NUM) {
result.append("<span class='pagelink'>");
for (int cou = ((currentPage - maxLength) > 0 ? maxLength
: currentPage - 1); cou >= 1; cou--) {
result.append("<a href='" + fileName);
if (currentPage - cou != INDEX_PAGE_NUM) {
result.append("_" + (currentPage - cou));
}
result.append(sufFix + "'>" + (currentPage - cou) + "</a>");
result.append(blankStr);
}
result.append("</span>");
result.append("<span class='pageon'>" + currentPage + "</span>");
result.append("<span class='pagelink'>");
for (int cou = 1; cou <= ((currentPage + maxLength) > pageCount ? pageCount
- currentPage
: maxLength); cou++) {
result.append("<a href='" + fileName + "_"
+ (currentPage + cou) + sufFix + "'>"
+ (currentPage + cou) + "</a>");
result.append(blankStr);
}
result.append("</span>");
}
if (pageCount > INDEX_PAGE_NUM) {
result.append("<span class='pagelink'>");
if (currentPage < pageCount) {
result.append("<a href='" + fileName + "_" + (currentPage + 1)
+ sufFix + "'>下一页</a>");
}
result.append(blankStr);
result.append("<a href='" + fileName + "_" + pageCount + sufFix
+ "'>末页</a>");
result.append("</span>");
}
return result.toString();
}
/**
* 动态分页条(自动带"page=?"的参数)
*
* @param currentPage
* 当前页数
* @param fetchCount
* 每页显示数
* @param recordCount
* 数据总数
* @param pagePath
* 页面路径
* @param reqParam
* 页面参数
* @return
*/
public static String getParamPageStr(int currentPage, int fetchCount,
int recordCount, String pagePath, String reqParam) {
String fileName = pagePath.split("\\.")[0];
String sufFix = "." + pagePath.split("\\.")[1];
StringBuffer result = new StringBuffer();
String blankStr = " ";
int maxLength = 4;
int pageCount = pageCount(recordCount, fetchCount);
if (pageCount > INDEX_PAGE_NUM) {
result.append("<span class='pagelink'>");
result.append("<a href='" + fileName + sufFix + "?" + reqParam
+ "&page=1" + "'>首页</a>");
if (currentPage > INDEX_PAGE_NUM) {
result.append(blankStr);
result.append("<a href='" + fileName);
result.append(sufFix + "?" + reqParam + "&page=");
result.append(currentPage - 1);
result.append("'>上一页</a>");
}
result.append("</span>");
result.append(blankStr);
}
if (pageCount > INDEX_PAGE_NUM) {
result.append("<span class='pagelink'>");
for (int cou = ((currentPage - maxLength) > 0 ? maxLength
: currentPage - 1); cou >= 1; cou--) {
result.append("<a href='" + fileName);
result.append(sufFix + "?" + reqParam + "&page=");
result.append(currentPage - cou);
result.append("'>" + (currentPage - cou) + "</a>");
result.append(blankStr);
}
result.append("</span>");
result.append("<span class='pageon'>" + currentPage + "</span>");
result.append("<span class='pagelink'>");
for (int cou = 1; cou <= ((currentPage + maxLength) > pageCount ? pageCount
- currentPage
: maxLength); cou++) {
result.append("<a href='" + fileName);
result.append(sufFix + "?" + reqParam + "&page=");
result.append((currentPage + cou));
result.append("'>" + (currentPage + cou) + "</a>");
result.append(blankStr);
}
result.append("</span>");
}
if (pageCount > INDEX_PAGE_NUM) {
result.append("<span class='pagelink'>");
if (currentPage < pageCount) {
result.append("<a href='" + fileName);
result.append(sufFix + "?" + reqParam + "&page=");
result.append((currentPage + 1) + "'>下一页</a>");
}
result.append(blankStr);
result.append("<a href='" + fileName);
result.append(sufFix + "?" + reqParam + "&page=");
result.append(pageCount + "'>末页</a>");
result.append("</span>");
}
return result.toString();
}
public static void main(String[] args){
System.out.println(getParamPageStr(2,1,3,"555.shtml",".shtml"));
}
}
发表评论
-
读取配置的又一种读法
2010-08-29 11:05 806/** * 读取配置文件 * */ pub ... -
Thread.sleep(long)和object.wait(long)的共同点和不同点
2010-08-20 16:11 1537Thread.sleep(long)和object. ... -
取得context.xml中配置的连接池的Java代码的写法
2010-08-18 11:00 10437. bind(String name,Object obj ... -
uri与url的区别
2010-08-18 10:00 123123. 所以我们得把这个login.jsp这个页面除外。 ... -
java中的类加载器,与tomcat自己又做了一些类加载器的不同
2010-08-17 11:11 152352. 现在来讲一下java中的类加载器的原理(双亲委派机制 ... -
Cache-control缓存控制
2010-08-17 11:05 1190HTTP头的Expires与Cache-control ... -
map
2010-08-17 10:32 121379. map是一个非常强大的数据结构,他还可以用来表示一个 ... -
request.getSession(true)和request.getSession(false)的区别
2010-08-17 10:10 183677. 现在来看一下 request.getSession ... -
之前的一个表之间的关联我没能查出来
2010-08-17 10:07 77565. 现在要做这个分销 ... -
验证码:
2010-08-17 10:03 118558. 接下来看一下,验证码,现在很多网站都加上了验证码,其 ... -
Listener
2010-08-17 09:56 975107. 我们再介绍一个比 ... -
Jsp中的静态包含与动态包含:
2010-08-17 09:55 80899. 现在来讲静态和动态include 关于这个inc ... -
转发情况下的查询条件保持住:
2010-08-17 09:53 68096. 重点说一下上面的东西,${param.clientN ... -
ThreadLocal 我所用到的地方
2010-08-16 15:35 125292. 现在来看怎么把三 ... -
一个servlet解决增删改查
2010-08-16 15:26 1762现在用三大框架来开发,快是很快,什么事务,转发的非常容易了,回 ... -
如果你的项目 数值类型要求非常严的话请用BigDecimal
2010-08-16 15:12 75458. 他说这个计算的事,如果你使用什么float,do ... -
不同服务器上开发程序时间同步的问题
2010-08-16 15:08 105049. 你现在在操作日期这个字段上放值,一般 是直接放一个n ... -
定位解决默认选中
2010-08-16 15:05 745jstl: <select name="ca ... -
jstl
2010-08-16 14:47 276398. 现在来看一下 el 表达式对运算符的支持: 1+ ... -
成员变量与类的属性的区别
2010-08-16 14:43 1229public class User{ pr ...
相关推荐
2. **实例化分页类**:将查询结果总数和每页记录数传递给分页类。 3. **设置当前页**:根据URL或请求参数设定当前页码。 4. **获取分页数据**:调用分页类的方法获取当前页的数据。 5. **渲染页面**:根据获取的...
这个"Page"分页类的实现可能包括以下几个核心组件: 1. **初始化**:类的构造函数接收必要的参数,如总记录数、每页显示的条目数、当前页数等,用于计算总的页数和其他相关属性。 2. **计算总页数**:根据总记录数...
"asp分页类"就是用来实现这种功能的代码库或组件。 分页类通常包含以下几个核心知识点: 1. **参数处理**:分页类需要接收一些参数,如当前页码、每页显示条目数、总记录数等。这些参数的正确处理是分页功能的基础...
Java公用分页类Java公用分页类Java公用分页类Java公用分页类Java公用分页类Java公用分页类Java公用分页类Java公用分页类Java公用分页类Java公用分页类Java公用分页类Java公用分页类
ASP.NET 分页类是用于处理大量数据并分批次显示的关键技术,它允许用户在Web应用程序中轻松地浏览大型数据集,提高用户体验,并减轻服务器负担。相比于Visual Studio (VS) 自带的分页控件,自定义分页类提供了更高的...
在ASP(Active Server Pages)环境中,实现分页功能通常需要编写自定义的分页类。下面我们将详细探讨ASP分页的原理、分页类的构建以及如何在实际项目中应用。 首先,理解分页的基本原理。分页的核心思想是通过限制...
asp源码—HHYY asp分页类(原印象分页类) v2.0 最终版.zip asp源码—HHYY asp分页类(原印象分页类) v2.0 最终版.zip asp源码—HHYY asp分页类(原印象分页类) v2.0 最终版.zip asp源码—HHYY asp分页类(原印象分页类) ...
以上代码示例中,`Pagination`就是我们的分页类,它封装了分页逻辑,使得在实际项目中应用分页变得简单易行。通过深入理解并定制此类,我们可以应对各种复杂的分页需求,如自定义URL结构、添加翻页动画、支持无限...
一个分页类通常包含获取总记录数、设置每页显示条数、计算总页数、生成分页链接等功能。例如,可以设计一个简单的分页类: ```php class Pagination { private $total_rows; private $per_page; private $...
这是一个功能强大,并且易于扩展的分页类,该类将分页的各个元素单独分开模块化,用户可以随心所欲的拼接出自己想要的分页效果,更是添加了控制分页样式的功能,可以让你独立设置分页各元素的样式,也集成了集中已经...
"高效asp分页类"就是针对这种情况设计的,旨在处理大数据集时保持快速响应,避免页面加载过慢或服务器压力过大。 高效asp分页类的核心在于优化了数据检索和页面渲染的过程,通常包括以下几个关键点: 1. **数据...
首先,我们需要创建一个分页类,这个类将包含关于分页的基本信息,如当前页、总页数、每页显示的记录数以及总记录数等。以下是一个简单的分页类的示例: ```java public class Pagination { private int current...
- **方法**:分页类的方法包括设置和获取属性值,计算总页数,生成分页链接,以及获取当前页数据的SQL语句等。 2. 分页类的核心功能 - **计算总页数**:根据总记录数和每页显示的条数来计算总页数。 ``` public...
下面将详细介绍分页类的工作原理、如何使用以及相关数据库操作。 首先,PHP分页类的核心功能是计算总页数、生成链接和获取每页的数据。它通常包括以下主要部分: 1. 计算总页数:根据查询语句获取所有记录的数量,...
"基于Servlet的抽象分页类"通常是指一个设计用于协助在Web应用中实现数据分页功能的类。分页是大型数据集展示时必要的功能,它帮助用户更有效地浏览和管理大量的信息,而无需一次性加载所有数据,提高了用户体验和...
2. **样式调整**:可以通过调整类中的属性值来改变分页组件的外观,例如更改文字、图标等。 #### 六、总结 PHP超强分页类不仅提供了基础的分页功能,还支持自定义显示模式、AJAX分页等功能,使得开发者能够根据项目...
`asp.net 通用分页类`就是为了解决这个问题而设计的,它允许开发者创建一个可复用的组件,以便在不同的数据展示页面上实现高效且灵活的分页功能。 首先,我们来看`C#`语言是如何实现分页逻辑的。在C#中,可以创建一...
描述中提到“无需调试,没有繁琐的页面样式设置”,这表明这个分页类已经考虑到了易用性和灵活性。它可能包含了内置的样式,可以直接嵌入到现有的页面布局中,同时也可能允许自定义样式,以适应各种前端框架。 接...
一款适合各种分页的分页类,可以直接根据构造函数的提示直接使用,分页导航直接调用最后的那个函数,非常完美的分页,考虑到各种情况.
【叶子ASP分页类1.2】是一款专为ASP(Active Server Pages)开发的分页组件,主要用于解决在网页上显示大量数据时的分页问题。这个组件版本为1.2,更新日期为2007年10月23日,由开发者“叶子”进行维护和更新。 在...