`
zc4530
  • 浏览: 85545 次
  • 性别: Icon_minigender_1
  • 来自: 长春
社区版块
存档分类
最新评论

jsp分页问题

    博客分类:
  • JAVA
阅读更多
java 代码
 
  1. 这里我以从一个用户表中查询用户信息为例演示其用法:  
  2. 1.将PageResultSet.java文件编译成class文件并放入你的Web应用程序的WEB-INF/classes/com/youngor/util目录下,可以对包名做相应修改。  
  3.   
  4. 2.在你的Action类中:  
  5. 先从业务处理逻辑类中取出数据(ArrayList或Vector格式)  
  6. UserBO userBO=new UserBO();  
  7. Collection data=userBO.findUsers();//示例方法  
  8. 再得到当前页curPage和每页记录数pageSize  
  9. int curPage = Integer.parseInt(request.getParameter(“cur_page“));  
  10. int pageSize=15;  
  11. 然后生成PageResultSet对象  
  12. PageResultSet dataList = new PageResultSet(data, curPage, pageSize);  
  13. request.setAttribute("usersList", usersList);  
  14.   
  15. 3.在你的JSP页面中:  
  16.    <%  
  17.           PageResultSet pageResultSet=(PageResultSet)request.getAttribute("usersList");  
  18.    ArrayList usersList=(ArrayList)pageResultSet.getData();  
  19.    for(int i=0;i  
  20.    {  
  21.             UserEO userEO=(UserEO)usersList.get(i);%>  
  22.        
  23.         <%=userEO.getUsername()%>  
  24.         <%=userEO.getName()%>  
  25.         <%=userEO.getPhoneNumber()%>  
  26.         <%=userEO.getEmailBox()%>  
  27.         <%=userEO.getAddress()%>  
  28.         <%=userEO.getPostcode()%>  
  29.          
  30.     <%}%>  
  31.      
  32.    
  33.   
  34.   
  35. <%=pageResultSet.getToolBar("list_users.do")%>  
  36.   
  37.   
  38. 注意:  
  39. 1、如果你觉得分页工具栏不能满足你的要求,  
  40. q网管(Evp;育H9p,  
  41. 可以用PageResultSet类中的公共方法  
  42. first()、previous()、next()、last()定制自己的工具栏,并且,你还可以在PageResultSet中定义多个样式的工具栏;  
  43. 2、getToolBar(String url)方法接受带查询字符串的参数,比如“list_users.do?class_id=1“。  
  44.   
  45.   
  46.   
  47. //PageResultSet.java  
  48. package com.youngor.util;  
  49.   
  50. import java.util.*;  
  51. /** 
  52.  * 
  53.  
  54. Title: PageResultSet 
  55.  
  56.  * 
  57.  * 
  58.  
  59. Description:分页类 
  60.  
  61.  * 
  62.  * 
  63.  
  64. Copyright: Copyright (c) 2004 
  65.  
  66.  * 
  67.  * 
  68.  
  69. Company:youngor-studio(http://www.54youngor.com) 
  70.  
  71.  * @author:伍维波 
  72.  * @version 1.0 
  73.  */  
  74. public class PageResultSet {  
  75.     /** 
  76.      * 分页数据 
  77.      */  
  78.     private Collection data = null;  
  79.     /** 
  80.      * 当前页 
  81.      */  
  82.     private int curPage;  
  83.     /** 
  84.      * 每页显示的记录数 
  85.      */  
  86.     private int pageSize;  
  87.     /** 
  88.      * 记录行数 
  89.      */  
  90.     private int rowsCount;  
  91.     /** 
  92.      * 页数 
  93.      */  
  94.     private int pageCount;  
  95.     public PageResultSet(Collection data) {  
  96.         this.data = data;  
  97.         this.curPage = 1;  
  98.         this.pageSize = 10;  
  99.         this.rowsCount = data.size();  
  100.         this.pageCount = (int) Math.ceil((double) rowsCount / pageSize);  
  101.     }  
  102.     public PageResultSet(Collection data, int curPage) {  
  103.         this.data = data;  
  104.         this.curPage = curPage;  
  105.         this.pageSize = 10;  
  106.         this.rowsCount = data.size();  
  107.         this.pageCount = (int) Math.ceil((double) rowsCount / pageSize);  
  108.     }  
  109.     public PageResultSet(Collection data, int curPage, int pageSize) {  
  110.         this.data = data;  
  111.         this.curPage = curPage;  
  112.         this.pageSize = pageSize;  
  113.         this.rowsCount = data.size();  
  114.         this.pageCount = (int) Math.ceil((double) rowsCount / pageSize);  
  115.     }  
  116.     /** 
  117.      * getCurPage:返回当前的页数 
  118.      * 
  119.      * @return int 
  120.      */  
  121.     public int getCurPage() {  
  122.         return curPage;  
  123.     }  
  124.     /** 
  125.      * getPageSize: 
  126. .vf]Y5{p}BuC"W 
  127. 返回分页大小 
  128.      * 
  129.      * @return int 
  130.      */  
  131.     public int getPageSize() {  
  132.         return pageSize;  
  133.     }  
  134.   
  135.     /** 
  136.      * getRowsCount:8NsAX教t$nT"TQ返回总记录行数 
  137.      * 
  138.      * @return int 
  139.      */  
  140.     public int getRowsCount() {  
  141.         return rowsCount;  
  142.     }  
  143.     /** 
  144.      * getPageCount:返回总页数 
  145.      * 
  146.      * @return int 
  147.      */  
  148.     public int getPageCount() {  
  149.         return pageCount;  
  150.     }  
  151.     /** 
  152.      * 第一页 
  153.      * @return int 
  154.      */  
  155.     public int first() {  
  156.         return 1;  
  157.     }  
  158.     /** 
  159.      * 最后一页 
  160.      * @return int 
  161.      */  
  162.     public int last() {  
  163.         return pageCount;  
  164.     }  
  165.     /** 
  166.      * 上一页 
  167.      * @return int 
  168.      */  
  169.     public int previous() {  
  170.         return (curPage - 1 < 1) ? 1 : curPage - 1;  
  171.     }  
  172.     /** 
  173.      * 下一页 
  174.      * @return int 
  175.      */  
  176.     public int next() {  
  177.         return (curPage + 1 > pageCount) ? pageCount : curPage + 1;  
  178.     }  
  179.     /** 
  180.      * 第一页 
  181.      * @return boolean 
  182.      */  
  183.     public boolean isFirst() {  
  184.         return (curPage==1)?true:false;  
  185.     }  
  186.     /** 
  187.      * 第一页 
  188.      * @return boolean 
  189.      */  
  190.     public boolean isLast() {  
  191.         return (curPage==pageCount)?true:false;  
  192.     }  
  193.     /** 
  194.      * 获取当前页数据 
  195.      * @return Collection 
  196.      */  
  197.     public Collection getData() {  
  198.         Collection curData = null;  
  199.         if (data != null) {  
  200.             int start = (curPage - 1) * pageSize;  
  201.             int end = 0;  
  202.             if (start + pageSize > rowsCount)  
  203.                 end = rowsCount;  
  204.             else  
  205.                 end = start + pageSize;  
  206.             ArrayList arrayCurData = new ArrayList();  
  207.             ArrayList arrayData = null;  
  208.             Vector vectorCurData = new Vector();  
  209.             Vector vectorData = null;  
  210.             boolean isArray = true;  
  211.             if (data instanceof ArrayList) {  
  212.                 arrayData = (ArrayList) data;  
  213.                 isArray = true;  
  214.             } else if (data instanceof Vector) {  
  215.                 vectorData = (Vector) data;  
  216.                 isArray = false;  
  217.             }  
  218.             for (int i = start; i < end; i++) {  
  219.                 if (isArray) {  
  220.                     arrayCurData.add(arrayData.get(i));  
  221.                 } else {  
  222.                     vectorData.add(vectorData.elementAt(i));  
  223.                 }  
  224.             }  
  225.             if (isArray) {  
  226.                 curData = (Collection) arrayCurData;  
  227.             } else {  
  228.                 curData = (Collection) vectorCurData;  
  229.             }  
  230.         }  
  231.         return curData;  
  232.     }  
  233.     /** 
  234.      * 获取工具条 
  235.      * @return String 
  236.      */  
  237.     public String getToolBar(String fileName){  
  238.         String temp="";  
  239.         if(fileName.indexOf("?")==-1)  
  240.         {  
  241.             temp="?";  
  242.         }  
  243.         else  
  244.         {  
  245.             temp="&";  
  246.         }  
  247.         String str=" 
  248. ";  
  249.         str+=" 
  250.  
  251. ";  
  252.         if(isFirst())  
  253.             str+="首页 上一页 ";  
  254.         else  
  255.         {  
  256.             str+="首页 ";  
  257.             str+="上一页 ";  
  258.         }  
  259.         if(isLast())  
  260.             str+="下一页 尾页 ";  
  261.         else  
  262.         {  
  263.             str+="下一页 ";  
  264.             str+="尾页 ";  
  265.         }  
  266.         str+=" 共"+rowsCount+"条记录 ";  
  267.         str+=" 转到 
  268. ";  
  269.         return str;  
  270.     }  
  271. }  
分享到:
评论

相关推荐

    ajax+jsp的分页问题

    综上所述,实现“ajax+jsp的分页问题”涉及到了前端的Ajax技术、后端的JSP编程、数据库操作、DOM操作、事件处理、错误处理以及页面优化等多个方面的知识。通过合理的编程和设计,我们可以创建出高效、友好的分页功能...

    java实现分页 jsp分页 分页

    java实现分页 jsp分页 分页java实现分页 jsp分页 分页java实现分页 jsp分页 分页java实现分页 jsp分页 分页java实现分页 jsp分页 分页java实现分页 jsp分页 分页

    JSP分页技术,非常好的的学习Jsp分页技术的教程,适合初学者

    ### JSP分页技术详解:初学者的完美指南 #### 引言 在现代Web开发中,数据展示的效率和用户体验至关重要。对于大型数据库或数据集的处理,一次性加载所有数据不仅消耗大量资源,还可能导致页面加载缓慢,严重影响...

    jsp 分页jsp 分页

    jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页...

    目前最好的JSP分页技术

    本篇文章将深入探讨“目前最好的JSP分页技术”,并介绍其核心概念、优势以及实现步骤。 首先,我们要明确的是,没有绝对“最好”的技术,只有最合适的解决方案。选择分页技术通常要考虑性能、易用性、可维护性和...

    Java Ajax分页,jsp ajax分页

    总结来说,实现Java AJAX分页和JSP分页涉及前后端的协作。前端通过AJAX与后端通信,后端处理请求并从数据库获取数据,然后将数据返回给前端,前端再更新页面内容。这个过程提升了用户体验,使得浏览大数据集变得更加...

    超级简单jsp分页代码

    超级简单jsp分页代码超级简单jsp分页代码超级简单jsp分页代码

    自己封装的jsp分页类

    jsp分页类 jsp分页类 jsp分页类

    JSP分页技术(多种方法)

    本文件“JSP分页技术(多种方法)”中,将探讨几种常见的JSP分页实现方法。 1. **基于SQL的分页** 这是最基础的分页方法,通过在SQL查询语句中添加`LIMIT`和`OFFSET`或`ROWNUM`(根据数据库类型)来实现。例如,在...

    jsp 分页实现总结大全

    在"分页的实现.rtf"文件中,可能包含了一个具体的JSP分页实现案例,包括SQL查询、Servlet处理逻辑以及JSP页面的代码片段,通过阅读和理解这个案例,可以加深对JSP分页实现的理解。 总结,JSP分页实现是一个涉及到...

    jsp 分页示例源码

    **JSP分页技术详解** 在Web开发中,分页是一种常见的用户界面设计技术,它使得大量数据可以按页展示,提高用户体验并减轻服务器压力。本示例是基于JSP(JavaServer Pages)和SQL Server 2005构建的一个简单易懂的...

    JSP通用分页显示1.2.rar_java 分页显示_jsp_jsp 分页_jsp 分页_jsp分页

    **JSP分页显示技术详解** 在Web开发中,数据量较大的时候,通常需要采用分页的方式来展示数据,以提高用户体验并减轻服务器负担。JSP(JavaServer Pages)作为Java平台上的动态网页技术,提供了丰富的功能来实现这...

    非常好用的jsp分页标签

    本资源提供了一个非常好用的JSP分页标签,它简化了在JSP页面上实现分页的过程,无需编写过多的Java代码,只需在JSP页面上插入特定的标签即可。 1. **JSP分页标签**:JSP分页标签是一种预定义的、可重用的组件,可以...

    jsp 分页源码.rar

    "jsp 分页源码.rar"这个压缩包可能包含了一个完整的JSP分页实现的源代码示例,让我们来详细探讨一下JSP分页的相关知识点。 1. **分页原理**: - 分页的基本思想是将大量数据分成若干小块(每块称为一页),每次只...

    分页 jsp 分页类 java

    在这个场景中,我们将讨论如何在Java环境下,结合jsp(JavaServer Pages)来实现分页功能。 分页主要涉及到两个关键组件:前端展示和后端处理。在jsp中,前端通常负责展示分页链接或按钮,而后端则处理请求,根据...

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

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

    jsp分页循环显示

    `jsp分页循环显示`就是一种这样的技术,它结合了`JSP(JavaServer Pages)`和`Servlet`,用于从数据库获取数据并以分页的方式在网页上呈现。本篇文章将深入讲解这一技术的实现原理及步骤。 首先,我们需要理解JSP和...

    纯jsp分页,不加任何封装

    【纯jsp分页技术详解】 在Java Web开发中,分页功能是不可或缺的一部分,它能够帮助用户有效地管理和浏览大量数据,提升用户体验。本教程将深入探讨如何在JSP(Java Server Pages)中实现纯jsp分页,不依赖任何封装...

    jsp分页技术算法jsp分页技术算法

    **jsp分页技术算法详解** 在Web开发中,分页技术是必不可少的,尤其是在处理大量数据展示时。JSP(JavaServer Pages)作为Java的一种视图技术,提供了强大的功能来实现用户界面的动态生成。本篇文章将深入探讨JSP中...

    jsp分页效果(web)

    二、JSP分页步骤 1. **计算总页数**:首先,我们需要知道所有数据的数量,然后根据每页显示的数据量来计算总页数。这可以通过执行SQL查询获取数据总数,然后用总数除以每页数量得到。 2. **接收用户请求**:用户...

Global site tag (gtag.js) - Google Analytics