龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > JAVA开发 >

用JAVA实现一个分页类

时间:2009-12-23 15:42来源:未知 作者:admin 点击:
分享到:
这里我以从一个用户表中查询用户信息为例演示其用法: 1.将PageResultSet.Java文件编译成class文件,并放入你的Web 应用程序的WEB-INF/classes/com/youngor/util目录下,可以对包名做相应修改。

  这里我以从一个用户表中查询用户信息为例演示其用法:
  
  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<usersList.size();i++)
   {
   UserEO userEO=(UserEO)usersList.get(i);%>
   <tr>
   <td><a href=../../"view_user.do?id=<%=userEO.getId()%>"><%=userEO.getUsername()%></a></td>
   <td><%=userEO.getName()%></td>
   <td><%=userEO.getPhoneNumber()%></td>
   <td><%=userEO.getEmailBox()%></td>
   <td><%=userEO.getAddress()%></td>
   <td><%=userEO.getPostcode()%></td>
   </tr>
   <%}%>
   </table></td>
   </tr>
  </table>
  
  <!-- 显示分页工具栏 -->
  
  <%=pageResultSet.getToolBar("list_users.do")%>
  
  
  注重:
  1、假如你觉得分页工具栏不能满足你的要求,可以用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.*;
  
  /**
   * <p>Title: PageResultSet</p>
   *
   * <p>Description:分页类 </p>
   *
   * <p>Copyright: Copyright (c) 2004</p>
   *
   * <p>Company:youngor-studio(http://www.54youngor.com) </p>
   * @author:伍维波
   * @version 1.0
   */
  public class PageResultSet {
   /**
   * 分页数据
   */
   private Collection data = null;
   /**
   * 当前页
   */
   private int curPage;
   /**
   * 每页显示的记录数
   */
   private int pageSize;
   /**
   * 记录行数
   */
   private int rowsCount;
   /**
   * 页数
   */
  
精彩图集

赞助商链接