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

geminihr 2013-03-01

本文出处:http://blog.csdn.net/tolys/archive/2007/10/06/1813197.aspx

像百度一样的jsp分页效果,像goolge一样的分页效果!

根据设定参数一次取一页记录内容显示

代码如下:

<%@pagelanguage="java"pageEncoding="GB2312"%>

<%

Stringpath=request.getContextPath();

StringbasePath=request.getScheme()+"://"

+request.getServerName()+":"+request.getServerPort()

+path+"/";

%>

<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">

<html>

<head>

<basehref="<%=basePath%>">

<title>仿BAIDU&GOOGLE分页页码显示格式</title>

<metahttp-equiv="pragma"content="no-cache">

<metahttp-equiv="cache-control"content="no-cache">

<metahttp-equiv="expires"content="0">

<metahttp-equiv="keywords"content="keyword1,keyword2,keyword3">

<metahttp-equiv="description"content="Thisismypage">

<style>

<!--

body{

.p{

PADDING-LEFT:18px;FONT-SIZE:14px;WORD-SPACING:4px

}

}

-->

</style>

</head>

<body>

<divclass="p">

<%

intpagesize=10;//每页显示记录数

intliststep=20;//最多显示分页页数

intpages=1;//默认显示第一页

if(request.getParameter("pages")!=null){

pages=Integer.parseInt(request.getParameter("pages"));//分页页码变量

}

//sql="selectcount(*)fromtable";//取出记录总数,把*换成记录名性能更加

intcount=305;//假设取出记录总数

intpagescount=(int)Math.ceil((double)count/pagesize);//求总页数,ceil(num)取整不小于num

if(pagescount<pages){

pages=pagescount;//如果分页变量大总页数,则将分页变量设计为总页数

}

if(pages<1){

pages=1;//如果分页变量小于1,则将分页变量设为1

}

intlistbegin=(pages-(int)Math.ceil((double)liststep/2));//从第几页开始显示分页信息

if(listbegin<1){

listbegin=1;

}

intlistend=pages+liststep/2;//分页信息显示到第几页

if(listend>pagescount){

listend=pagescount+1;

}

//显示数据部分

intrecordbegin=(pages-1)*pagesize;//起始记录

intrecordend=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));

}

//Connectionconn=null;//要测试显示数据请自己链接数据库

//PreparedStatementstmt=null;

//StringstrSql="select*fromusertablelimitrecordbegin,pagesize";//取出分页记录,SQL因数据库而异!

//stmt=conn.prepareStatement(strSql);

//ResultSetrs=stmt.executeQuery();

//while(rs.next())){

//response.getWriter().println(""+rs.getString("userId")+"<br>");//显示取出的数据

//}

for(inti=recordbegin;i<recordend;i++){

response.getWriter().println("record"+i+"<br>");

}

//显示数据部分

//<显示分页信息

//<显示上一页

if(pages>1){

response.getWriter().println(

"<ahref=?pages="+(pages-1)+">上一页</a>");

}//>显示上一页

//<显示分页码

for(inti=listbegin;i<listend;i++){

if(i!=pages){//如果i不等于当前页

response.getWriter().println(

"<ahref=?pages="+i+">["+i+"]</a>");

}else{

response.getWriter().println("["+i+"]");

}

}//显示分页码>

//<显示下一页

if(pages!=pagescount){

response.getWriter().println(

"<ahref=?pages="+(pages+1)+">下一页</a>");

}//>显示下一页

//>显示分页信息

%>

</div>

</body>

</html>

相关推荐