分页实现

实现分页的思路:

第一步,判断是否有数据,当没数据显示是显示“<strong>暂无数据</strong>”

第二步,上一页的处理,首先判断当前页是否为第一页,如果是span标签,反之<a>标签

第三步,当前页距离第一页大于4显示省略号

第四步,当前页距离左后一页过多显示省略号

第五步,下一页的处理和第二步差不多

代码如下:

package com.fhc.util;

public class pageUtil {

    private int pageSize=10;//每页大小

    private int pageNo=1;//当前页

    private int totalSize;//总数

   

    public String doStartTag(){

        //计算有多少页

        int pageCount=(totalSize+pageSize-1)/pageSize;

        StringBuffer html=new StringBuffer();

        //<div class="pagination-input-wrap">前往<input class="pagination-input" type="text">页<a class="pagination-go" href="javascript:void(0)">确定</a></div></div>

        html.append("<div class='pagination'>");

        //1、没有记录

        if(totalSize==0){

            html.append("<strong>暂无数据</strong>");

           

        }else{

            //越界处理

            if(pageNo>pageCount){

                pageNo=pageCount;

            }

            if(pageNo<1){

                pageNo=1;

            }

            //2、上一页的处理

            if(pageNo==1){

                html.append("<span class='previous unavailable'><span class='arrow-left'></span></span>");

            }else{

                html.append("<a href='javascript:doPage("+(pageNo-1)+")' class='previous'><span class='arrow-left'></span></a>");

            }

            int start=1;

            //3、当前页距离第一页大于4显示省略号

            if(pageNo>4){

                start=this.pageNo-1;

                html.append("<a href='javascript:doPage(1)' rel='nofollow'>1</a>");

                html.append("<a href='javascript:doPage(2)' rel='nofollow'>2</a>");

                html.append("<span class='break'>...</span>");

            }

            //显示当前页附近页

            int end=pageNo+1;

            if(end>pageCount){

                end=pageCount;

            }

            for(int i=start;i<=end;i++){

                if(pageNo==i){

                    html.append("<span class='current'>"+pageNo+"</span>");

                }else{

                    html.append("<a href='javascript:doPage("+i+")' rel='nofollow'>"+i+"</a>");

                }

            }

            //4、当前页距离左后一页过多显示省略号

            if(end<pageCount-2){

                html.append("<span class='break'>...</span>");

            }

            if(end<pageCount-1){

                html.append("<a href='javascript:doPage("+(pageCount-1)+")' rel='nofollow'>"+(pageCount-1)+"</a>");

            }

            if(end<pageCount){

                html.append("<a href='javascript:doPage("+(pageCount)+")' rel='nofollow'>"+(pageCount)+"</a>");

            }

            //5、下一页

            if(pageNo==pageCount){

                html.append("<span class='next unavailable'><span class='arrow-right'></span></span>");

            }else{

                html.append("<a class='next' href='javascript:doPage("+(pageNo+1)+")'><span class='arrow-right'></span></a>");

               

            }

            html.append("<div class='pagination-input-wrap'>前往<input class='pagination-input' type='text' id='page'>页<a class='pagination-go' href='javascript: var value=document.getElementById(\"page\").value;doPage(value)'>确定</a></div>");

        }

        html.append("</div>");

       

        return html.toString();

       

    }

    public int getPageSize() {

        return pageSize;

    }

    public void setPageSize(int pageSize) {

        this.pageSize = pageSize;

    }

    public int getPageNo() {

        return pageNo;

    }

    public void setPageNo(int pageNo) {

        this.pageNo = pageNo;

    }

    public int getTotalSize() {

        return totalSize;

    }

    public void setTotalSize(int totalSize) {

        this.totalSize = totalSize;

    }

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值