`
Tank03
  • 浏览: 80653 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

jsp实现分页

阅读更多

这里我以从一个用户表中查询用户信息为例演示其用法:  
1.将PageResultSet.java文件编译成class文件并放入你的Web应用程序的WEB-INF/classes/com/youngor/util目录下,可以对包名做相应修改。  
  
2.在你的Action类中:  
先从业务处理逻辑类中取出数据(ArrayList或Vector格式)  
UserBO userBO=new UserBO();  
Collection data=userBO.findUsers();//示例方法  
再得到当前页curPage和每页记录数pageSize  
int curPage = Integer.parseInt(request.getParameter(“cur_page“));  
int pageSize=15;  
然后生成PageResultSet对象  
PageResultSet dataList = new PageResultSet(data, curPage, pageSize);  
request.setAttribute("usersList", usersList);  
  
3.在你的JSP页面中:  
   <%  
          PageResultSet pageResultSet=(PageResultSet)request.getAttribute("usersList");  
   ArrayList usersList=(ArrayList)pageResultSet.getData();  
   for(int i=0;i  
   {  
            UserEO userEO=(UserEO)usersList.get(i);%>  
       
        <%=userEO.getUsername()%>  
        <%=userEO.getName()%>  
        <%=userEO.getPhoneNumber()%>  
        <%=userEO.getEmailBox()%>  
        <%=userEO.getAddress()%>  
        <%=userEO.getPostcode()%>  
         
    <%}%>  
     
   
  
  
<%=pageResultSet.getToolBar("list_users.do")%>  
  
  
注意:  
1、如果你觉得分页工具栏不能满足你的要求,  
q网管(Evp;育H9p,  
可以用PageResultSet类中的公共方法  
first()、previous()、next()、last()定制自己的工具栏,并且,你还可以在PageResultSet中定义多个样式的工具栏;  
2、getToolBar(String url)方法接受带查询字符串的参数,比如“list_users.do?class_id=1“。  
  
  
  
//PageResultSet.java  
package com.youngor.util;  
  
import java.util.*;  
/** 
 * 
 
Title: PageResultSet 
 
 * 
 * 
 
Description:分页类 
 
 * 
 * 
 
Copyright: Copyright (c) 2004 
 
 * 
 * 
 
Company:youngor-studio(http://www.54youngor.com) 
 
 * @author:伍维波 
 * @version 1.0 
 */  
public class PageResultSet {  
    /** 
     * 分页数据 
     */  
    private Collection data = null;  
    /** 
     * 当前页 
     */  
    private int curPage;  
    /** 
     * 每页显示的记录数 
     */  
    private int pageSize;  
    /** 
     * 记录行数 
     */  
    private int rowsCount;  
    /** 
     * 页数 
     */  
    private int pageCount;  
    public PageResultSet(Collection data) {  
        this.data = data;  
        this.curPage = 1;  
        this.pageSize = 10;  
        this.rowsCount = data.size();  
        this.pageCount = (int) Math.ceil((double) rowsCount / pageSize);  
    }  
    public PageResultSet(Collection data, int curPage) {  
        this.data = data;  
        this.curPage = curPage;  
        this.pageSize = 10;  
        this.rowsCount = data.size();  
        this.pageCount = (int) Math.ceil((double) rowsCount / pageSize);  
    }  
    public PageResultSet(Collection data, int curPage, int pageSize) {  
        this.data = data;  
        this.curPage = curPage;  
        this.pageSize = pageSize;  
        this.rowsCount = data.size();  
        this.pageCount = (int) Math.ceil((double) rowsCount / pageSize);  
    }  
    /** 
     * getCurPage:返回当前的页数 
     * 
     * @return int 
     */  
    public int getCurPage() {  
        return curPage;  
    }  
    /** 
     * getPageSize: 
.vf]Y5{p}BuC"W 
返回分页大小 
     * 
     * @return int 
     */  
    public int getPageSize() {  
        return pageSize;  
    }  
  
    /** 
     * getRowsCount:8NsAX教t$nT"TQ返回总记录行数 
     * 
     * @return int 
     */  
    public int getRowsCount() {  
        return rowsCount;  
    }  
    /** 
     * getPageCount:返回总页数 
     * 
     * @return int 
     */  
    public int getPageCount() {  
        return pageCount;  
    }  
    /** 
     * 第一页 
     * @return int 
     */  
    public int first() {  
        return 1;  
    }  
    /** 
     * 最后一页 
     * @return int 
     */  
    public int last() {  
        return pageCount;  
    }  
    /** 
     * 上一页 
     * @return int 
     */  
    public int previous() {  
        return (curPage - 1 < 1) ? 1 : curPage - 1;  
    }  
    /** 
     * 下一页 
     * @return int 
     */  
    public int next() {  
        return (curPage + 1 > pageCount) ? pageCount : curPage + 1;  
    }  
    /** 
     * 第一页 
     * @return boolean 
     */  
    public boolean isFirst() {  
        return (curPage==1)?true:false;  
    }  
    /** 
     * 第一页 
     * @return boolean 
     */  
    public boolean isLast() {  
        return (curPage==pageCount)?true:false;  
    }  
    /** 
     * 获取当前页数据 
     * @return Collection 
     */  
    public Collection getData() {  
        Collection curData = null;  
        if (data != null) {  
            int start = (curPage - 1) * pageSize;  
            int end = 0;  
            if (start + pageSize > rowsCount)  
                end = rowsCount;  
            else  
                end = start + pageSize;  
            ArrayList arrayCurData = new ArrayList();  
            ArrayList arrayData = null;  
            Vector vectorCurData = new Vector();  
            Vector vectorData = null;  
            boolean isArray = true;  
            if (data instanceof ArrayList) {  
                arrayData = (ArrayList) data;  
                isArray = true;  
            } else if (data instanceof Vector) {  
                vectorData = (Vector) data;  
                isArray = false;  
            }  
            for (int i = start; i < end; i++) {  
                if (isArray) {  
                    arrayCurData.add(arrayData.get(i));  
                } else {  
                    vectorData.add(vectorData.elementAt(i));  
                }  
            }  
            if (isArray) {  
                curData = (Collection) arrayCurData;  
            } else {  
                curData = (Collection) vectorCurData;  
            }  
        }  
        return curData;  
    }  
    /** 
     * 获取工具条 
     * @return String 
     */  
    public String getToolBar(String fileName){  
        String temp="";  
        if(fileName.indexOf("?")==-1)  
        {  
            temp="?";  
        }  
        else  
        {  
            temp="&";  
        }  
        String str=" 
";  
        str+=" 
 
";  
        if(isFirst())  
            str+="首页 上一页 ";  
        else  
        {  
            str+="首页 ";  
            str+="上一页 ";  
        }  
        if(isLast())  
            str+="下一页 尾页 ";  
        else  
        {  
            str+="下一页 ";  
            str+="尾页 ";  
        }  
        str+=" 共"+rowsCount+"条记录 ";  
        str+=" 转到 
";  
        return str;  
    }  
}  
 
分享到:
评论

相关推荐

    jsp实现分页功能

    在网页开发中,分页功能是一项非常常见的需求,特别是在数据量较大的情况下,为了提高用户体验,我们需要将大量数据分批次展示,这就是jsp实现分页功能的主要目的。本篇将详细介绍如何利用jsp来完成这一任务。 首先...

    使用jsp实现分页显示

    总结来说,使用JSP实现分页显示涉及数据库查询、页面设计、请求处理和数据渲染等多个步骤。通过合理的设计和实现,可以为用户提供高效、便捷的浏览体验。在实际开发中,还需要考虑安全性、性能优化以及适应不同设备...

    jsp.rar_jsp 分页_jsp分页_jsp实现分页_分页

    "jsp.rar_jsp 分页_jsp分页_jsp实现分页_分页"这个压缩包显然包含了一套完整的 JSP 分页解决方案。下面我们将详细探讨 JSP 实现分页的相关知识点。 1. **JSP基本概念**: JSP 是一种基于 Java 的服务器端脚本语言...

    jsp实现分页功能代码

    本教程将详细讲解如何使用JSP实现分页功能。 一、JSP分页原理 JSP分页的基本思想是通过服务器端处理数据,根据当前页码将所需的数据分块发送到客户端。通常,我们需要知道总记录数、每页显示的记录数以及当前页码。...

    jsp实现分页案例

    在这个"jsp实现分页案例"中,我们将探讨如何利用Java、MySQL数据库和JDBC(Java Database Connectivity)来实现前端界面的简单分页。 首先,我们要理解JSP(JavaServer Pages)的角色。JSP是一种动态网页技术,允许...

    单个JSP实现分页的小例子(有详细说明)

    数据库用的是MYSQL 1)先建立一个weiye库 , 2)再建立一个测试表(可以直接导入Test.sql) 3) 连接数据的URL得根据你的实际情况改...本例是用一个JSP实现分页完整的小例子。本人测试通过的,麻雀虽小,五脏俱全!

    JSP_page.zip_jsp分页_jsp实现分页_page

    本教程将深入探讨如何使用JSP实现分页功能,这对于处理大量数据的展示至关重要,例如在电子商务网站、论坛或者博客中。JSP分页能够提高用户体验,避免一次性加载过多的数据导致页面响应慢。 一、JSP分页基础 1. ...

    JSP实现分页功能

    总结来说,JSP实现分页功能主要涉及前端请求处理、后端数据计算、SQL查询以及页面呈现。通过结合Servlet和JSP,以及适当的Java类,可以构建出高效且易于维护的分页系统。提供的`最好用的分页代码(java版)`文件应该...

    jsp实现分页和页面跳转功能博文的源代码

    本文将深入讲解如何使用JSP实现分页和页面跳转功能,并基于提供的源代码进行解析。 分页是网页展示大量数据时常用的一种策略,它可以提高用户体验,避免一次性加载过多信息导致页面响应变慢。JSP分页通常涉及以下几...

    jsp实现分页jsp翻页技术

    在本篇我们将深入探讨如何使用JSP实现分页和翻页技术。 首先,理解分页的基本概念。分页是指将大量的数据分成若干个较小的部分,每个部分称为一页,用户可以通过点击页码或导航按钮来切换不同的页面。在JSP中,我们...

    使用JSP实现查询分页

    使用JSP实现查询分页,不仅需要理解其背后的逻辑,还需要熟练掌握Java和SQL语句的编写,以及如何在JSP中嵌入和执行这些代码。通过合理的分页策略,可以显著提升大型数据集的网页展示效率和用户体验。希望本文能够...

    使用jsp实现分页代码

    总结起来,使用JSP实现分页代码涉及到数据库查询、参数处理、页面渲染等多个环节。通过合理的代码组织和利用JSP标签库,可以创建出高效、可维护的分页功能,提高用户在大数据量场景下的浏览体验。在实际项目中,还应...

    JSP实现分页的代码

    以上就是使用JSP实现分页的基本步骤和注意事项,无论你是初学者还是有经验的开发者,理解这些知识都能帮助你更好地处理大数据量的展示问题。通过实践,你可以进一步掌握分页技术,提升Web应用的用户体验。

    jsp实现分页,实现状态管理,实现文件上传

    在这个主题中,我们将深入探讨"jsp实现分页,实现状态管理,实现文件上传"这三个关键知识点。 首先,我们来看**分页**。在Web应用中,当数据量过大时,分页是必不可少的,它能帮助用户更高效地浏览和管理信息。在...

    jsp实现分页和页面跳转功能的源码与数据库

    本资源包“jsp实现分页和页面跳转功能的源码与数据库”提供了实现这两个关键功能的实例,旨在帮助开发者理解并掌握在实际项目中的应用。 一、分页功能 分页是大型Web应用中常见的功能,它允许用户逐步浏览大量的...

    java连mysql接数据库,jsp实现分页

    总结来说,Java连接MySQL数据库并通过JSP实现分页功能涉及以下几个关键步骤:配置JDBC驱动,建立数据库连接,编写SQL查询,处理分页逻辑,以及在JSP中展示数据和创建导航链接。这些基础知识是构建Web应用程序的重要...

    用jsp实现分页

    简单的描述了jsp实现分页的技术!jsp实现分页 totalNum获得数据的总记录数 获取最大页数 maxPage if(totalNum==0){ maxPage=1; }else if(totalNum%size==0){ maxPage=totalNum/size; }else{ maxPage=...

    java oracle数据库过程实现jsp分页

    以上就是通过Java、Oracle存储过程和JSP实现分页的基本流程。在实际项目中,可能还需要考虑更多细节,如错误处理、性能优化(如使用索引、避免全表扫描)以及用户体验优化(如加载提示、动态加载等)。理解并掌握这...

Global site tag (gtag.js) - Google Analytics