`
Etwo
  • 浏览: 104660 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

JavaWeb的分页代码,基于MVC模式,简单注释详尽

阅读更多

写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);

 
3
0
分享到:
评论
2 楼 a255299 2016-07-12  
:l[size=x-small][/size]ol:      的发货单上

相关推荐

    JavaWeb基于MVC模式开发的简易购物车系统

    该系统主要采用MVC(JSP+JavaBean+Servlet)模式开发,非常适合初学者了解并掌握MVC开发模式,具有如下主要功能: 1.用户登录,注册(用户注册后才能登录) 2.显示所有书籍基本信息(编号,书名,价格等) 3.添加...

    学习笔记:javaWeb考试系统(基于MVC模式)

    JavaWeb在线考试系统是基于MVC(Model-View-Controller)设计模式开发的一款应用程序,它主要用于帮助学生和教师进行线上测试和评估。在这个系统中,MVC模式将应用程序分为三个主要部分:模型(Model)、视图(View...

    JavaWeb课设基于MVC设计模式实现的图书馆系统源码+设计报告.zip

    JavaWeb课设基于MVC设计模式实现的图书馆系统源码+设计报告.zipJavaWeb课设基于MVC设计模式实现的图书馆系统源码+设计报告.zipJavaWeb课设基于MVC设计模式实现的图书馆系统源码+设计报告.zipJavaWeb课设基于MVC设计...

    基于MVC模式的JavaWeb应用设计-张黎明

    ### 基于MVC模式的JavaWeb应用设计 #### 一、引言 随着互联网技术的迅猛发展,Web应用已经成为现代信息化社会不可或缺的一部分。在众多的Web开发技术中,Java以其强大的跨平台能力、丰富的类库支持以及成熟的企业级...

    JAVAWEB在线聊天系统(基于MVC)

    【标题】"JAVAWEB在线聊天系统(基于MVC)"是一个综合性的Web应用程序,旨在提供一个实时的在线交流平台。它利用了MVC(Model-View-Controller)架构模式,这是一种常见的软件设计模式,用于组织Web应用程序的代码...

    JavaWeb期末大作业-基于MVC设计模式的图书馆系统代码+文档说明+实验报告

    JavaWeb期末大作业-基于MVC设计模式的图书馆系统+源代码+文档说明+实验报告,含有代码注释,新手也可看懂,个人手打98分项目,导师非常认可的高分项目,毕业设计、期末大作业和课程设计高分必看,下载下来,简单部署...

    Struts与Hibernate实用教程构建基于MVC模式的高效Java Web应用例子代码(1)

    Struts与Hibernate实用教程构建基于MVC模式的高效Java Web应用例子代码 (1),共10个例子

    _基于MVC模式的JavaWeb开发与应用.pdf

    本文档主要介绍了基于MVC模式的JavaWeb开发与应用,通过对MVC模式的分析和应用,降低JavaWeb开发的系统复杂性,提高开发效率和代码重用性。 知识点一:MVC模式 MVC模式是软件设计模式之一,将软件系统分为三个主要...

    基于mvc模式的Javaweb酒店管理系统

    《基于MVC模式的JavaWeb酒店管理系统详解》 在当今信息技术高速发展的时代,高效、便捷的酒店管理系统成为了提升服务质量、优化运营效率的关键。本文将详细阐述一个基于MVC(Model-View-Controller)模式的JavaWeb...

    网上论坛基于MVC模式,用servlet技术实现(可以运行)

    本项目基于MVC(Model-View-Controller)模式,使用Servlet技术进行开发,这是一套广泛应用于Java Web开发的设计模式,能有效地将业务逻辑、数据处理和用户界面分离,提高代码的可维护性和可扩展性。 MVC模式的核心...

    基于MVC的JavaWeb设计与开发,JavaWeb设计与开发,MVC

    在JavaWeb开发领域,MVC(Model-View-Controller)架构模式被广泛采用,它将应用程序分为三个主要部分:模型(Model)、视图(View)和控制器(Controller),以此实现业务逻辑、数据处理和用户界面的分离,提高代码...

    javaweb基于MVC的商品管理系统-jsp+servlet+dao

    基于MVC的商品管理系统,可以实现登录、注册,基本增删改查。...3.jsp实现的简单分页。 4.管理员能够对商品信息和用户信息进行增删改查。 包里有必读.md,介绍了项目的基本情况、数据库结构和效果图。

    基于MVC的javaWeb简易留言板,仅供学习

    mysql+servlet+javabean的JavaWeb简易网页留言板,数据库用的Mysql,服务器用tomact,内涵代码和简易文档图片,下载个navicat即可运行,本内容只适用于在校大学生等初学者了解和学习MVC模式,谢谢

    JavaWeb分页技术与实现(含代码)

    ### JavaWeb分页技术与实现 #### 一、引言 在JavaWeb应用程序开发中,分页技术是一项非常重要的功能,特别是在处理大量数据时。合理的分页不仅可以提高用户体验,还能有效减轻服务器负担,提高系统的响应速度。...

    Javaweb开发mvc模式

    在这个基于MVC模式的JavaWeb开发实例中,可能包括以下部分: - **Servlet或Controller**:实现登录、注册的逻辑,处理HTTP请求,调用相应的业务方法。 - **Employee类**:作为模型,包含雇员信息,并提供CRUD操作。 ...

    Linux下基于MVC的JavaWeb开发

    资源名称:Linux下基于MVC的JavaWeb开发内容简介:《LINUX下基于MVC的JAVAWeb开发》基于实际的JavaWeb设计流程,详尽讲解了Linux环境下MyEclipse开发工具的使用方法和基于MVC设计模式的JavaWeb开发方法。主要内容...

    javaweb分页简单分页

    本教程将详细介绍如何实现一个简单的分页功能。 首先,理解分页的基本概念。分页通常包括两个主要部分:当前页数和每页显示的数据量。用户可以通过点击页码或使用导航按钮来改变这些值。在JavaWeb应用中,我们可以...

    MLDN李兴华老师 javaweb开发实战经典 MVC设计模式完整源代码

    【JavaWeb开发实战:MVC设计模式详解】 在IT行业中,JavaWeb开发是构建Web应用程序的重要技术之一。李兴华老师的“javaweb开发实战经典”课程深入浅出地讲解了这一领域的核心概念和实践技巧,其中MVC(Model-View-...

    javaweb实现分页代码

    分页代码 action接受参数负责调用service,service调用dao查询具体的分页数据,同时将返回的数据封装到PageBean中,再返回action以PageBean。适合初学者参考。注:还包含类似动态显示条(sql数据加到十几页可以看到...

    javaweb的权限过滤以及登录验证后的分页实现案例。基于MVC模式开发.zip

    本案例基于MVC(Model-View-Controller)设计模式进行开发,旨在展示如何在实际项目中实现这些功能。 **一、MVC模式** MVC模式是一种将业务逻辑、数据和用户界面分离的设计模式。在JavaWeb中,Model代表业务模型,...

Global site tag (gtag.js) - Google Analytics