tjzero_sapce 2009-03-22 11:27
浏览 274
已采纳

求一个简洁点的分页代码

在改一个jsp/serlvet/javabean 的Project,在一个jsp中有多个submit 提交带着各种不同的条件去查询list 数据,然后再显示回这个jsp 页面.
我当前写了一个class 类,听说后面的步骤只要在jsp中声明对象,并传入相应的参数就ok 了,但是在jsp中怎么就不知道了.下面我贴出已写的代码希望能有人帮我把jsp部分补下.
[code="java"]import java.util.ArrayList;

/**

  • 这个就是用来做分页的类
  • @author zzy
  • 创建时间:2009.3.19
  • */
    public class PagInation {

    //当前的页码数
    private int currentPage ;
    //每页显示多少行
    private int showRow ;
    //结果集的总行数
    private int totalRecords ;
    //结果集
    private ArrayList objList ;

    /**

    • 获取总页码数 (这是计算总页码数的一个不错的算法)
    • @return int
    • */ public int getTotalPages(){ return (this.totalRecords + this.showRow - 1)/this.showRow; }

    /**

    • 获取首页码数
    • @return int
    • */ public int getFristPageNumber(){ return 1 ; }

    /**

    • 获得尾页码数
    • @return int
    • */ public int getBottomPageNumber(){ return this.getTotalPages();
      }

    /**

    • 获取上一页码数
    • @return int
    • */ public int getPerviousPageNumber(){ if(this.currentPage <= 1){ return 1; } return this.currentPage - 1 ; }

    /**

    • 获取下一页码数
    • @return int
    • */ public int getNextPageNumber(){ if(this.currentPage == this.getBottomPageNumber()){ return this.getBottomPageNumber() ; } return this.currentPage + 1 ; }

    /**

    • 获取当前页码数
    • @return int
    • */ public int getCurrentPage() { return currentPage; }

    public void setCurrentPage(int currentPage) {
    this.currentPage = currentPage;
    }

    public int getShowRow() {
    return showRow;
    }

    public void setShowRow(int showRow) {
    this.showRow = showRow;
    }

    public int getTotalRecords() {
    return totalRecords;
    }

    public void setTotalRecords(int totalRecords) {
    this.totalRecords = totalRecords;
    }

    public ArrayList getObjList() {
    return objList;
    }

    public void setObjList(ArrayList objList) {
    this.objList = objList;
    }
    }[/code]

  • 写回答

2条回答 默认 最新

  • zhoujuan520 2009-03-22 11:45
    关注

    不推荐使用 list分页,这样直接就把所有数据查出来了.其实这个是内存分页了.并没有什么好的效率,如果数据有1000万条,那这个简直就是噩梦,

    推荐使用 数据库端分页,前台只传条件.后台数据库查询,虽然查询次数多了.但不会有噩梦
    到我的博客下载图书管理系统 http://yourgame.iteye.com/blog/252853

    我这个系统里面的分页是采用数据库端的.效率高许多.而且我也封装了一个分页的Class 叫做 Page 查询的时候,穿件这个类的一个对象,设置分页信息,查询后把这个对象重新返回业务层,需要的数据已经保存在root里面了.记录总数也保存在totalProperty里面了.

    [code="java"]package com.lhq.prj.bms.core;

    import java.util.List;

    public class Page {
    /** 总记录数 */
    private int totalProperty;

    /** 分页结果 */
    private List root;
    
    /** 开始页码 */
    private int start;
    
    /** 每页多少 */
    private int limit;
    
    /** 成功与否 */
    private boolean success;
    
    /** 查询条件 */
    private List conditions;
    
    private Object objCondition;
    
    public Object getObjCondition() {
        return objCondition;
    }
    
    public void setObjCondition(Object objCondition) {
        this.objCondition = objCondition;
    }
    
    public int getLimit() {
        return limit;
    }
    
    public void setLimit(int limit) {
        this.limit = limit;
    }
    
    public List getRoot() {
        return root;
    }
    
    public void setRoot(List root) {
        this.root = root;
    }
    
    public int getStart() {
        return start;
    }
    
    public void setStart(int start) {
        this.start = start;
    }
    
    public boolean isSuccess() {
        return success;
    }
    
    public void setSuccess(boolean success) {
        this.success = success;
    }
    
    public int getTotalProperty() {
        return totalProperty;
    }
    
    public void setTotalProperty(int totalProperty) {
        this.totalProperty = totalProperty;
    }
    
    public List getConditions() {
        return conditions;
    }
    
    public void setConditions(List conditions) {
        this.conditions = conditions;
    }
    

    }
    [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?