关于之前实现的
SSH、JavaWeb的分页代码,封装好、直接调用,简单实用、分页API
分页代码的一个完善,当分页出现0或者负数或者大于计算出来的页数的时候,可能出现数据不能正常显示的问题。
action中仅用以下代码就能调用,servlet中可效仿此调用
this.paging = new Paging();
//设置当前页码
this.paging.setCurPage(this.cur_page);
//把得到总共显示的数据记录设置在分页总纪录中
this.paging.setRowCount(userMagr.count());
//设置每页显示的数据记录
this.paging.setPageRowCount(3);
//保存分页工具条
request.setAttribute("toolBar", this.paging.getToolBar("user_list.do"));
//得到每页显示数据
this.users = userMagr.list(paging);
在此,特提出完善后的代码
package net.etwo.util;
public class Paging {
/**
* 分页
* @说明:本分页采用直接获取每一页的数据
* @author Etwo
*/
/*
* 分页要素:
* 1、首页 first
* 2、最后一页 last
* 3、页总数 pageCount
* 4、总共显示的数据记录 rowCount
* 5、每页显示的数据记录 pageRowCount
* 6、当前页 curPage
* 7、定义每一页的开始 start
* 8、定义每一页的结束 end
*/
/**
* 1、首页 first
*/
private int first;
/**
* 2、最后一页 last
*/
private int last;
/**
* 3、页总数 pageCount
*/
private int pageCount;
/**
* 4、总共显示的数据记录 rowCount
*/
private long rowCount;
/**
* 5、每页显示的数据记录 pageRowCount
*/
private int pageRowCount;
/**
* 6、当前页 curPage
*/
private int curPage;
/**
* 7、定义每一页的开始 start
*/
private int start;
/**
* 8、定义每一页的结束 end
*/
private int end;
/**
* 计算并得出页总数
* @return
*/
public int getPageCount() {
this.pageCount = (int)Math.ceil((double)this.getRowCount() / (double)this.getPageRowCount());
return pageCount;
}
/**
* 得到总共显示的数据记录
* @return
*/
public long getRowCount() {
return rowCount;
}
/**
* 设置总共显示的数据记录
* @param rowCount
*/
public void setRowCount(long rowCount) {
this.rowCount = rowCount;
}
/**
* 得到每页显示的数据记录
* @return
*/
public int getPageRowCount() {
return pageRowCount;
}
/**
* 设置每页显示的数据记录
* @param pageRowCount
*/
public void setPageRowCount(int pageRowCount) {
this.pageRowCount = pageRowCount;
}
/**
* 得到当前页
* @return
*/
public int getCurPage() {
if(curPage <= 0 ) {
curPage = 1;
} else if(curPage >= this.getPageCount()) {
curPage = this.getPageCount();
}
return curPage;
}
/**
* 设置当前页
* @param curPage
*/
public void setCurPage(int curPage) {
this.curPage = curPage;
}
/**
* 得到每页的开始记录数
* @return
*/
public int getStart() {
this.start = (this.getCurPage() - 1) * this.getPageRowCount();
return start;
}
/**
* 得到每页的结束记录数
* @return
*/
public int getEnd() {
this.end = this.getPageRowCount();
return end;
}
/**
* 得到首页
* @return
*/
public int getFirst() {
this.first = 1;
return this.first;
}
/**
* 得到最后一页
* @return
*/
public int getLast() {
this.last = (int)this.getPageCount();
return last;
}
/**
* 上一页
* @return
*/
public int previous() {
return (this.getCurPage() > 1) ? this.getCurPage() - 1 : 1;
}
/**
* 下一页
* @return
*/
public int next() {
return (this.getCurPage() < (int)this.getPageCount()) ? this.getCurPage() + 1 : (int)this.getPageCount();
}
/**
* 判断是否是首页
* @return
*/
public boolean isFirst() {
return (this.getCurPage() == 1) ? true : false;
}
/**
* 判断是否是最后一页
* @return
*/
public boolean isLast() {
return (this.getCurPage() == this.getPageCount()) ? true : false;
}
/**
* 客户端显示的工具条
*/
public String getToolBar(String url) {
String str, temp;
//用于判断url中是否存在?
if(url.indexOf("?") == -1) {
temp = "?";
} else {
temp = "&";
}
str = "<form method='post' name='frmPage' action='" + url + "'> ";
str += "<p align='right' id='page'>";
str += "<span style='font-size: 12px; font-weight: bold;'>";
//判断是否是首页
if(isFirst()) {
str += "首页 上一页 ";
} else {
str += "<a href='" + url + temp + "cur_page=" + this.getFirst() + "'>首页</a> ";
str += "<a href='" + url + temp + "cur_page=" + this.previous() + "'>上一页</a> ";
}
//判断是否是最后一页
if(isLast()) {
str += "下一页 尾页 ";
} else {
str += "<a href='" + url + temp + "cur_page=" + this.next() + "'>下一页</a> ";
str += "<a href='" + url + temp + "cur_page=" + this.getLast() + "'>尾页</a> ";
}
str += " 共<b>" + this.rowCount + "</b>条记录 ";
str += " 转到<select name='page' onChange=\"location='" + url + temp + "cur_page='+this.options[this.selectedIndex].value\">";
for(int i = 1; i <= this.getPageCount(); i++) {
//判断是否是当前页,若是,则默认为选中当前页
if(i == this.getCurPage())
str += "<option value='" + i + "' selected>第" + i + "页</option>";
else
str += "<option value='" + i + "'>第" + i + "页</option>";
}
str += "</select></span></p></form>";
return str;
}
}
分享到:
相关推荐
有感于制作网站时,常常要求有分页功能。为了避免写重复又不复杂的代码,特编写的这个关于sqlserver 的java代码封装
javaweb分页简单分页
分页代码 action接受参数负责调用service,service调用dao查询具体的分页数据,同时将返回的数据封装到PageBean中,再返回action以PageBean。适合初学者参考。注:还包含类似动态显示条(sql数据加到十几页可以看到...
分析Java Web中分页的技术,并对各种分页技术进行对比。具体说明了超大数据量的分页在MySQL、Or-acle中的实现方法,编写了针对Oracle数据库分页接口和实现类。
简单javaweb分页功能实现,通过添加一个pagebean实现。
javaweb经典分页源码
javaweb_分页显示数据库内容 javaweb_分页显示数据库内容 javaweb_分页显示数据库内容
Java Web实现分页查询 总数据量 除以 当前页面显示的数据量以确定每页显示数据数
javaweb分页技术详解及代码.pdf
JavaWeb 数据库 分页 原理 解析 下载 简单易懂 将下载后的压缩文件解压后可以得到page_csdn文件夹,用eclipse导入即可,运行之前请运行page.sql数据库脚本,我使用的是MySQL数据库。 部署到Tomcat服务器后,在...
针对于javaweb中分页的方法简介,仅作参考,你可以针对自己的需求进行修改
此案例使用原生的PageBean实现分页查询,只单纯的为了实现分页而编写的小案例,使用JDBC+Servlet+JSP实现。(数据库代码+源码)
javaweb实现界面分页显示,方法已封装好,直接调用即可
使用 jsp servlet mysql 实现的简单分页功能。
典型的事例,采用MVC实现分页的关键代码!
可以重复利用的分页代码,是一个已经写好的代码,直接链接使用就可,这个是以前培训项目写的分页,可能需要根据项目自己变动的改一下
代码里面涵盖了基本的jsp+servlet分页代码,适合新手
JavaWeb的代码JavaWeb的代码JavaWeb的代码JavaWeb的代码JavaWeb的代码JavaWeb的代码JavaWeb的代码JavaWeb的代码
次主要是讲解一下通过登录后对得到的数据进行分页,首先我们新建一个登录页面login.jsp,因为我们主要学习的分页,所以登录验证的部分没有提到。关于javaweb中的分页代码大家通过本文学习吧
在JAVA Web学习中网页开发是必不可少的,网页中的分页也不可能没有,这是一份网页开发中的分页代码的实例,也许对大家有所帮助