写JavaWeb的程序,分页是相当重要的,本人在网上也找了很多资料,总结了一个超级简单的分页分享于下:
1、分页代码,写在服务端:
package net.amag.util;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Vector;
public class Paging {
/**
* 分页
* @author Etwo
*/
/*
* 分页要素:
* 1、首页 first
* 2、最后一页 last
* 3、页总数 pageCount
* 4、总共显示的数据条数 rowCount
* 5、每页显示的数据条数 pageRowCount
* 6、当前页 curPage
* 7、得到的数据 data
*/
/**
* 1、首页 first
*/
private int first;
/**
* 2、最后一页 last
*/
private int last;
/**
* 3、页总数 pageCount
*/
private int pageCount;
/**
* 4、总共显示的数据条数 rowCount
*/
private int rowCount;
/**
* 5、每页显示的数据条数 pageRowCount
*/
private int pageRowCount;
/**
* 6、当前页 curPage
*/
private int curPage;
/**
* 7、得到的数据 data
*/
private Collection data;
/**
* 默认显示10条数据
*/
public Paging(Collection data, int curPage) {
this.data = data;
this.curPage = curPage;
this.pageRowCount = 10;
this.rowCount = data.size();
this.pageCount = (int)Math.ceil((double)this.rowCount / (double)this.pageRowCount);
}
/**
* 自行设置每页显示的条数
*/
public Paging(Collection data, int curPage, int pageRowCount) {
this.data = data;
this.curPage = curPage;
this.pageRowCount = pageRowCount;
this.rowCount = data.size();
this.pageCount = (int)Math.ceil((double)this.rowCount / (double)this.pageRowCount);
}
/**
* 首页取得
* @return
*/
public int getFirst() {
return this.first = 1;
}
/**
* 最后一页取得
* @return
*/
public int getLast() {
return this.last = this.pageCount;
}
/**
* 上一页
* @return
*/
public int previous() {
return (this.curPage > 1) ? this.curPage - 1 : 1;
}
/**
* 下一页
* @return
*/
public int next() {
return (this.curPage < this.pageCount) ? this.curPage + 1 : this.pageCount;
}
/**
* 判断是否是首页
* @return
*/
public boolean isFirst() {
return (this.curPage == 1) ? true : false;
}
/**
* 判断是否是最后一页
* @return
*/
public boolean isLast() {
return (this.curPage == this.pageCount) ? true : false;
}
/**
* 当前要显示的数据取得
* @return
*/
public Collection getData() {
Collection curData = null;
if(data != null) {
//定义每一页开始到最后的显示的行数
int start, end;
start = (this.curPage - 1) * this.pageRowCount;
//判断当前显示的数据是否足以显示一整页
if(start + this.pageRowCount > this.rowCount) {
end = this.rowCount;
} else {
end = start + this.pageRowCount;
}
ArrayList arrayData = null;
Vector vectorData = null;
ArrayList arrayCurData = new ArrayList();
Vector vectorCurData = new Vector();
boolean isArrayData = true;
//判断是属于哪一种集合
if(data instanceof ArrayList) {
arrayData = (ArrayList)data;
isArrayData = true;
} else if(data instanceof Vector) {
vectorData = (Vector)data;
isArrayData = false;
}
//循环得到每一页的数据
for(int i = start; i < end; i++) {
if(isArrayData) {
arrayCurData.add(arrayData.get(i));
} else {
vectorCurData.add(vectorData.get(i));
}
}
if(isArrayData) {
curData = arrayCurData;
} else {
curData = vectorCurData;
}
}
return curData;
}
/**
* 客户端显示的工具条
*/
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 += "";
str += "<span style='font-size: 12px; font-weight: bold;'>";
//判断是否是首页
if(isFirst()) {
str += "首页 上一页 ";
} else {
str += "<a href='" + url + temp + 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.pageCount; i++) {
//判断是否是当前页,若是,则默认为选中当前页
if(i == curPage)
str += "<option value='" + i + "' selected>第" + i + "页</option>";
else
str += "<option value='" + i + "'>第" + i + "页</option>";
}
str += "</select></span></form>";
return str;
}
}
2、servlet调用简单示例,大家可以模仿此示例进行调用分页
ArrayList<Manager> listManager = bsm.getListManager();
if(listManager != null) {
//拿到客户端当前页
String cur_page = req.getParameter("cur_page");
//判断第一次显示时当前页为空时
if(null == cur_page) {
cur_page = "1";
}
int curPage = Integer.parseInt(cur_page);
//数据显示
Paging page = new Paging(listManager, curPage, 5);
// Paging page = new Paging(listManager, curPage);
//拿到当前数据
listManager = (ArrayList<Manager>)page.getData();
//保存
req.setAttribute("listManager", listManager);
//拿到分页工具条,并传递url
String toolBar = page.getToolBar("BackStageManagerCrud.do?judge=show");
//保存工具条
req.setAttribute("toolBar", toolBar);
req.getRequestDispatcher("manager_show.jsp").forward(req, resp);
分享到:
相关推荐
该系统主要采用MVC(JSP+JavaBean+Servlet)模式开发,非常适合初学者了解并掌握MVC开发模式,具有如下主要功能: 1.用户登录,注册(用户注册后才能登录) 2.显示所有书籍基本信息(编号,书名,价格等) 3.添加...
JavaWeb在线考试系统是基于MVC(Model-View-Controller)设计模式开发的一款应用程序,它主要用于帮助学生和教师进行线上测试和评估。在这个系统中,MVC模式将应用程序分为三个主要部分:模型(Model)、视图(View...
JavaWeb课设基于MVC设计模式实现的图书馆系统源码+设计报告.zipJavaWeb课设基于MVC设计模式实现的图书馆系统源码+设计报告.zipJavaWeb课设基于MVC设计模式实现的图书馆系统源码+设计报告.zipJavaWeb课设基于MVC设计...
### 基于MVC模式的JavaWeb应用设计 #### 一、引言 随着互联网技术的迅猛发展,Web应用已经成为现代信息化社会不可或缺的一部分。在众多的Web开发技术中,Java以其强大的跨平台能力、丰富的类库支持以及成熟的企业级...
【标题】"JAVAWEB在线聊天系统(基于MVC)"是一个综合性的Web应用程序,旨在提供一个实时的在线交流平台。它利用了MVC(Model-View-Controller)架构模式,这是一种常见的软件设计模式,用于组织Web应用程序的代码...
JavaWeb期末大作业-基于MVC设计模式的图书馆系统+源代码+文档说明+实验报告,含有代码注释,新手也可看懂,个人手打98分项目,导师非常认可的高分项目,毕业设计、期末大作业和课程设计高分必看,下载下来,简单部署...
Struts与Hibernate实用教程构建基于MVC模式的高效Java Web应用例子代码 (1),共10个例子
本文档主要介绍了基于MVC模式的JavaWeb开发与应用,通过对MVC模式的分析和应用,降低JavaWeb开发的系统复杂性,提高开发效率和代码重用性。 知识点一:MVC模式 MVC模式是软件设计模式之一,将软件系统分为三个主要...
《基于MVC模式的JavaWeb酒店管理系统详解》 在当今信息技术高速发展的时代,高效、便捷的酒店管理系统成为了提升服务质量、优化运营效率的关键。本文将详细阐述一个基于MVC(Model-View-Controller)模式的JavaWeb...
本项目基于MVC(Model-View-Controller)模式,使用Servlet技术进行开发,这是一套广泛应用于Java Web开发的设计模式,能有效地将业务逻辑、数据处理和用户界面分离,提高代码的可维护性和可扩展性。 MVC模式的核心...
在JavaWeb开发领域,MVC(Model-View-Controller)架构模式被广泛采用,它将应用程序分为三个主要部分:模型(Model)、视图(View)和控制器(Controller),以此实现业务逻辑、数据处理和用户界面的分离,提高代码...
基于MVC的商品管理系统,可以实现登录、注册,基本增删改查。...3.jsp实现的简单分页。 4.管理员能够对商品信息和用户信息进行增删改查。 包里有必读.md,介绍了项目的基本情况、数据库结构和效果图。
mysql+servlet+javabean的JavaWeb简易网页留言板,数据库用的Mysql,服务器用tomact,内涵代码和简易文档图片,下载个navicat即可运行,本内容只适用于在校大学生等初学者了解和学习MVC模式,谢谢
### JavaWeb分页技术与实现 #### 一、引言 在JavaWeb应用程序开发中,分页技术是一项非常重要的功能,特别是在处理大量数据时。合理的分页不仅可以提高用户体验,还能有效减轻服务器负担,提高系统的响应速度。...
在这个基于MVC模式的JavaWeb开发实例中,可能包括以下部分: - **Servlet或Controller**:实现登录、注册的逻辑,处理HTTP请求,调用相应的业务方法。 - **Employee类**:作为模型,包含雇员信息,并提供CRUD操作。 ...
资源名称:Linux下基于MVC的JavaWeb开发内容简介:《LINUX下基于MVC的JAVAWeb开发》基于实际的JavaWeb设计流程,详尽讲解了Linux环境下MyEclipse开发工具的使用方法和基于MVC设计模式的JavaWeb开发方法。主要内容...
本教程将详细介绍如何实现一个简单的分页功能。 首先,理解分页的基本概念。分页通常包括两个主要部分:当前页数和每页显示的数据量。用户可以通过点击页码或使用导航按钮来改变这些值。在JavaWeb应用中,我们可以...
【JavaWeb开发实战:MVC设计模式详解】 在IT行业中,JavaWeb开发是构建Web应用程序的重要技术之一。李兴华老师的“javaweb开发实战经典”课程深入浅出地讲解了这一领域的核心概念和实践技巧,其中MVC(Model-View-...
分页代码 action接受参数负责调用service,service调用dao查询具体的分页数据,同时将返回的数据封装到PageBean中,再返回action以PageBean。适合初学者参考。注:还包含类似动态显示条(sql数据加到十几页可以看到...
本案例基于MVC(Model-View-Controller)设计模式进行开发,旨在展示如何在实际项目中实现这些功能。 **一、MVC模式** MVC模式是一种将业务逻辑、数据和用户界面分离的设计模式。在JavaWeb中,Model代表业务模型,...