JSP仿百度分页,谷歌分页页码处理

原创 2007年10月06日 18:35:00

转载请勿删除此消息
本文出处: http://blog.csdn.net/tolys/archive/2007/10/06/1813197.aspx

 像百度一样的jsp分页效果,像goolge一样的分页效果!
 根据设定参数一次取一页记录内容显示

代码如下:

<%@ page language="java" pageEncoding="GB2312"%>
<%
    String path 
= request.getContextPath();
    String basePath 
= request.getScheme() + "://"
            
+ request.getServerName() + ":" + request.getServerPort()
            
+ path + "/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    
<head>
        
<base href="<%=basePath%>">

        
<title>仿BAIDU & GOOGLE 分页页码显示格式</title>
        
<meta http-equiv="pragma" content="no-cache">
        
<meta http-equiv="cache-control" content="no-cache">
        
<meta http-equiv="expires" content="0">
        
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
        
<meta http-equiv="description" content="This is my page">
        
<style>
        
<!--
            body
{
                .p
{
                    PADDING
-LEFT: 18px; FONT-SIZE: 14px; WORD-SPACING: 4px
                }

            }

        
-->
        
</style>
    
</head>

    
<body>
        
<div class="p">
            
<%
                
int pagesize = 10;//每页显示记录数
                int liststep = 20;//最多显示分页页数
                int pages = 1;//默认显示第一页
                if (request.getParameter("pages"!= null{
                    pages 
= Integer.parseInt(request.getParameter("pages"));//分页页码变量
                }

                
//sql="select count(*) from table";//取出记录总数,把*换成记录名性能更加
                int count = 305;//假设取出记录总数
                int pagescount = (int) Math.ceil((double) count / pagesize);//求总页数,ceil(num)取整不小于num
                if (pagescount < pages) {
                    pages 
= pagescount;//如果分页变量大总页数,则将分页变量设计为总页数
                }

                
if (pages < 1{
                    pages 
= 1;//如果分页变量小于1,则将分页变量设为1
                }

                
int listbegin = (pages - (int) Math.ceil((double) liststep / 2));//从第几页开始显示分页信息
                if (listbegin < 1{
                    listbegin 
= 1;
                }

                
int listend = pages + liststep/2;//分页信息显示到第几页
                if (listend > pagescount) {
                    listend 
= pagescount + 1;
                }


                
//显示数据部分
                int recordbegin = (pages - 1* pagesize;//起始记录
                int recordend = 0;
                recordend 
= recordbegin + pagesize;
                
//最后一页记录显示处理
                // if (pages == pagescount) {
                  //  recordend 
= (int) (recordbegin + pagesize * (count % pagesize) * 0.1);
               //  }
                  if (pages == pagescount && count % pagesize != 0) {//感谢shixiangkun在博客中提出问题
                       recordend = (int) (recordbegin + (count % pagesize) );
                  }
                //Connection conn = null;//要测试显示数据请自己链接数据库
                
//PreparedStatement stmt = null;
                
//String strSql = "select * from usertable limit recordbegin,pagesize";//取出分页记录,SQL因数据库而异!
                
//stmt = conn.prepareStatement(strSql);
                
//ResultSet rs = stmt.executeQuery();
                
//while(rs.next())){
                
//    response.getWriter().println(""+rs.getString("userId")+"<br>");//显示取出的数据
                
//}
                for (int i = recordbegin; i < recordend; i++{
                    response.getWriter().println(
"record " + i + "<br>");
                }


                
//显示数据部分

                
//<显示分页信息
                
//<显示上一页
                if (pages > 1{
                    response.getWriter().println(
                    
"<a href=?pages=" + (pages - 1+ ">上一页</a>");
                }
//>显示上一页
                
//<显示分页码
                for (int i = listbegin; i < listend; i++{
                    
if (i != pages) {//如果i不等于当前页
                        response.getWriter().println(
                        
"<a href=?pages=" + i + ">[" + i + "]</a>");
                    }
 else {
                        response.getWriter().println(
"[" + i + "]");
                    }

                }
//显示分页码>
                
//<显示下一页
                if (pages != pagescount) {
                    response.getWriter().println(
                    
"<a href=?pages=" + (pages + 1+ ">下一页</a>");
                }
//>显示下一页
                
//>显示分页信息
            %>
        
</div>
    
</body>
</html>
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

照着百度的分页写了一个分页条

[csharp] view plaincopy using System;   using System.Collections.Generic;   using S...

java仿百度分页

最近因为业务需要,写了个仿百度的分页工具类,略有所感,贴出来供大家参考、指正 其实 分页工具类并不难写,主要弄清楚以下几件事,就可以轻松写出分页 1、当前页(nowPage)如何获得 2、总页数...

详谈javaWeb分页的实现(模拟百度分页)

javaweb 分页的实现,底层用的是mysql数据库

JAVA WEB从入门到精通 day20 分页技术&小项目:客户管理系统

分页什么是分页?我们用网站查询信息时,经常会看到 第N页/总M页 首页 1 2 3 4 5 6 7 8 9 尾页 下一页 分页就是将数据分页数来显示 为什么要分页?1.我们查询数据时如果数...

分页前端的显示 仿百度

page_nav.jsp requestScope.pageStu.totalPage }"> 首页 上一页

JavaWeb无框架实现分页

1.通用的Page模板。T可以为自己声明的bean类。 import java.util.List; public class Page { //数据列表 数据库获取 private List ...

PHP模拟百度分页

以前做分页,总是“首页”、“上一页”、“下一页”、“尾页”这种分页方法,如果嫌不方便,最多加上一个“跳转至”,用多了就显得非常死板。 最近,看百度、贴吧都是用的另一种分页方法。即显示“上一页”(当最...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)