专注于高品质PHP技术等信息服务于一体 [STIEMAP] [RSS]

百度提供的广告:
java
当前位置:首页 > 技术文档 > java >  > 
Java 分页页码源码

       //通用字段
    public int pageSize = 1;
    public int nowPage = 1;
    public int allCount = 1;
    public int allPage = 1;

/**
     * 显示分页HTML
     */
    protected void showPage()
    {
        setPageParam();
        countAllPage();
        //分页URL
        String url = "?"+getRequest().getQueryString();
        int location = url.lastIndexOf("&n=");
        if(0<location)
        {
            url = url.substring(0,location);
        }
        url+="&n=";
        StringBuilder sb = new StringBuilder();
        sb.append("<li><a href='"+(url+1)+"'>首页</a></li>");
        sb.append("<li><a href='"+(1<nowPage ? url+(nowPage-1) : "" )+"'><<</a></li>");
        sb.append("<li><a href='"+(1<nowPage ? url+(nowPage-1) : "" )+"'>上一页</a></li>");
        //中间部分 页码算法 2 3 4 5 6 ...
        if(3 < nowPage)
        {
            sb.append("<li>...</li>");
        }
        if(2 == nowPage)
        {
            sb.append("<li><a href='"+(url+(nowPage-1))+"'>"+(nowPage-1)+"</a></li>");
        }
        if(2<nowPage)
        {
            sb.append("<li><a href='"+(url+(nowPage-2))+"'>"+(nowPage-2)+"</a></li>");
            sb.append("<li><a href='"+(url+(nowPage-1))+"'>"+(nowPage-1)+"</a></li>");
        }
        sb.append("<li>"+nowPage+"</li>");
        if(nowPage+1 == allPage)
        {
            sb.append("<li><a href='"+(url+(nowPage+1))+"'>"+(nowPage+1)+"</a></li>");
        }
        if(nowPage+2 <= allPage)
        {
            sb.append("<li><a href='"+(url+(nowPage+1))+"'>"+(nowPage+1)+"</a></li>");
            sb.append("<li><a href='"+(url+(nowPage+2))+"'>"+(nowPage+2)+"</a></li>");
        }
        if(nowPage+2 < allPage)
        {
            sb.append("<li>...</li>");
        }
        sb.append("<li><a href='"+(allPage>nowPage ? url+(nowPage+1) : "" )+"'>下一页</a></li>");
        sb.append("<li><a href='"+(allPage>nowPage ? url+(nowPage+1) : "" )+"'>>></a></li>");
        sb.append("<li><a href='"+(url+allPage)+"'>末页</a></li>");
        sb.append("<li>共"+allPage+"页</li>");
        page = sb.toString();
    }

 

效果:与DZ 论坛页码相似 首页 上一页 1 2 3 4 .... 下一页 尾页 共29页.