java分页类(程序处理分页,非数据库处理分页)

分页java类,mark下来。

package com.core;

import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class MyPagination {
    public List<Object> list = null;
    private int recordCount = 0;  //记录数
    private int pagesize = 0;   //每页记录数
    private int maxPage = 0;    //最大页数
    private int maxview=5;//最多能看4个数字;

    // 初始化分页信息
    public List getInitPage(List list, int Page, int pagesize) {
        List<Object> newList = new ArrayList<Object>();
        this.list = list;
        recordCount = list.size();
        this.pagesize = pagesize;
        this.maxPage = getMaxPage();
        Page=Math.round(Page);
        try {
            for (int i = (Page - 1) * pagesize; i <= Page * pagesize - 1; i++) {
                try {
                    if (i >= recordCount) {
                        break;
                    }
                } catch (Exception e) {
                }
                newList.add((Object) list.get(i));
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return newList;
    }

    // 获取指定页的数据
    public List<Object> getAppointPage(int Page) {
        Page=Math.round(Page);
        List<Object> newList = new ArrayList<Object>();
        try {
            for (int i = (Page - 1) * pagesize; i <= Page * pagesize - 1; i++) {
                try {
                    if (i >= recordCount) {
                        break;
                    }
                } catch (Exception e) {
                }
                newList.add((Object) list.get(i));
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return newList;
    }

    // 获取最大记录数
    public int getMaxPage() {
        int maxPage = (recordCount % pagesize == 0) ? (recordCount / pagesize)
                : (recordCount / pagesize + 1);
        return maxPage;
    }

    // 获取总记录数
    public int getRecordSize() {
        return recordCount;
    }

    // 获取当前页数
    public int getPage(String str) {
        System.out.println("STR:" + str + "&&&&" + recordCount);
        if (str == null) {
            str = "0";
        }
        System.out.print("Page=??????");
         float oldPage = Float.parseFloat(str);
         int Page=Math.round(oldPage);
        System.out.print("Page="+Page);
        if (Page < 1) {
            Page = 1;
        } else {
            if (((Page - 1) * pagesize + 1) > recordCount) {
                Page = maxPage;
            }
        }
        return Page;
    }

    public String printCtrl(String url,int Page) {

        //if ((this.Page.value=='')||(typeof(this.Page.value.toString)!=number)) {window.alert('输入错误!');document.viewtb.printtb.printfo.Page.focus();}
        String choose="";
        String clickaction="<script language='javascript' type='text/javascript'>function checkviewtb(){var x=document.getElementsByName('Page');if(x[0].value<1||x[0].value>"+maxPage+"||isNaN(x[0].value)) {alert('请输入有效的数字!');x[0].value=''; x[0].focus(); return false; }}</script>";
        //String pageinput="<select name='Page'>";
        String strHtml = clickaction+"<table width='100%'  border='0px' cellspacing='0' cellpadding='0' name='printtb' ><form name='printfo' action="+url+" method=post  border='0px' onSubmit='return checkviewtb()'><tr> <td height='20' align='right'>页数:["
                + Math.round(Page) + "/" + maxPage + "]";
        try {
            //if (Page > 1) {
            if(Page == 1)
            {
                strHtml = strHtml +"&nbsp;&nbsp;&nbsp;<span style='color:#a3a3a3;size:14px'>首页</span>";
                strHtml = strHtml + "&nbsp;&nbsp;<span style='color:#a3a3a3;size:14px'>上一页</span>";
            }else
            {
                strHtml = strHtml +"&nbsp;&nbsp;&nbsp;<a href='"+url+"&Page=1'>首页</a>";
                strHtml = strHtml + "&nbsp;&nbsp;<a href='"+url+"&Page=" + Math.round(Page - 1)
                + "'>上一页</a>";
            }

            //}
            //if (Page < maxPage) {

                    //strHtml = strHtml + "<span><a href='"+url+"&Page=" + (i + 1)+ "'><%=i%></a></span>";
            String curpagestr="";//当前页红色
            if(maxview<=maxPage)
            {

                  for(int i=-2;i<(maxview-2);i++)
                  {

                         // if((maxview+Page-1)<=maxPage)

                      if((Page-2)<=0)
                        {     
                            if(Page==i+3){
                                curpagestr="<font color=red>"+(i+3)+"</font>";
                            }
                            else{
                                curpagestr="<font>"+(i+3)+"</font>";
                            }
                              strHtml = strHtml +"&nbsp;&nbsp;<a href='"+url+"&Page=" + (i+3)+ "'>"+curpagestr+"</a>"; 
                        }
                          else if((Page+2)<maxPage)
                          {
                              if(Page==Math.round(i+Page)){
                                    curpagestr="<font color=red>"+Math.round(i+Page)+"</font>";
                                }
                              else{
                                    curpagestr="<font>"+Math.round(i+Page)+"</font>";
                                }
                              strHtml = strHtml +"&nbsp;&nbsp;<a href='"+url+"&Page=" + Math.round(i+Page)+ "'>"+curpagestr+"</a>";   
                          }
                          else
                          {   
                              if(Page==maxPage-2+i){
                                    curpagestr="<font color=red>"+(maxPage-2+i)+"</font>";
                             }
                              else{
                                    curpagestr="<font>"+(maxPage-2+i)+"</font>";
                                }
                              strHtml = strHtml +"&nbsp;&nbsp;<a href='"+url+"&Page=" + (maxPage-2+i)+ "'>"+curpagestr+"</a>";  
                          }
                  }
            }
            else
            {   
                for(int i=0;i<maxPage;i++)
                  {
                    if(Page==i+1){
                        curpagestr="<font color=red>"+(i+1)+"</font>";
                    }
                    else{
                        curpagestr="<font>"+(i+1)+"</font>";
                    }
                        strHtml = strHtml +"&nbsp;&nbsp;<a href='"+url+"&Page=" + (i+1) + "'>"+curpagestr+"</a>";                     
                  }
            }

            /*for(int i=0;i<maxPage;i++)
                {   
                    if((i+1)==Page)
                    {
                        choose="selected";
                        pageinput=pageinput+"<option value='"+(i+1)+"' "+choose+">"+(i+1)+"</option>";
                    }
                else
                {
                    pageinput=pageinput+"<option value='"+(i+1)+"'>"+(i+1)+"</option>";
                }

                }
                //pageinput=pageinput+"</select>";*/


                if(Page >= maxPage)
                {
                    strHtml = strHtml + "&nbsp;&nbsp;<span style='color:#a3a3a3;size:14px'>下一页</span>";
                    strHtml = strHtml + "&nbsp;&nbsp;<span style='color:#a3a3a3;size:14px'>末页</span>&nbsp;&nbsp;";
                }
                else
                {
                    strHtml = strHtml + "&nbsp;&nbsp;<a href='"+url+"&Page=" + (Page + 1)
                    + "'>下一页</a>";
                    strHtml = strHtml + "&nbsp;&nbsp;<a href='"+url+"&Page=" + maxPage+ "'>末页</a>&nbsp;&nbsp;";
                }

            //<input type='text' id='page' name='Page' width='10px' size='2' >}
                strHtml = strHtml + "第<input type='text' id='page' name='Page' width='10px' size='2' >页 <input type='submit' value='GO'  name='gobutton' >";
            strHtml = strHtml + "</td> </tr>    </form></table>";
        } catch (Exception e) {
            e.printStackTrace();

        }
        return strHtml;
    }



}
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

java技术之路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值