JAVA 用JSP分页有数字

如题所述

带有数字分页的jsp代码实现方式如下:

首先要定义四个变量:

int pageSize:每页显示多少条记录

int pageNow:希望显示第几页

int pageCount:一共有多少页

int rowCount:一共有多少条记录

说明:

pageSize是指定的 pageNow是用户选择的

rowCount是计算出来的 该计算式为

if(rowCount%pageSize==0){

pageCount=rowCount/pageSize;

}else{

pageCount=rowCount/pageSize+1;

}

(技巧:

数据库插入:

insert into 表名(字段1,2,。。。)select 字段1,2,...from 表名

)

查询语句

select top pageSize字段名列表from表名where id not in

(select top pageSize*(pageNow-1)id from 表名)

以我们前面的users表为例,显示第二页,该查询语句就是:

select top 3 * from users where userId not in(select top 3 userId from users)

(select top 3 userId from users):选出这个表的前三条 前面再选三条


<h1>用户信息列表</h1>

<%

//定义四个分页会用到的变量

int pageSize=3;

int pageNow=1;//默认显示第一页

int rowCount=0;//该值从数据库中查询

int pageCount=0;//该值是通过pageSize和rowCount

//接受用户希望显示的页数(pageNow)

String s_pageNow=request.getParameter("pageNow");

if(s_pageNow!=null){

//接收到了pageNow

pageNow=Integer.parseInt(s_pageNow);

}

//查询得到rowCount

Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");

Connection ct=DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;dataBaseName=System","sa","");

Statement sm=ct.createStatement();

ResultSet rs=sm.exeuteQuery("select count(*) form users ");

if(rs.next()){

rowCount=rs.getInt(1);

}

//计算pageCount

if(rowCount%pageSize==0){

pageCount=rowCount/pageSize;

}else{

pageCount=rowCount/pageSize+1;

}

//查询出需要显示的记录

rs=sm.exeuteQuery("select top "+pageSize

+" * from users where userId not in(select top "

+pageSize*(pageNow-1)+" userId from users) ");

%>

//显示


<table border="1">

<tr><td>用户ID</td><td>用户名字</td><td>密码</td><td>电邮</td><td>级别</td></tr>

<%

while(rs.next()){

%>


<tr><td><%=rs.getInt(1)%></td><td><%=rs.getString(2)%></td>

<td><%=rs.getString(3)%></td><td><%=rs.getString(4)%></td><td><%=rs.getInt(5)%></td></tr>

<%}%>

</table>

<%

//上一页

if(pageNow!=1){

out.println("<a href=wel.jsp?pageNow="+(pageNow-1)+">上一页</a>");

}

//显示超链接

for(int i=1;i<=pageCount;i++){

out.println("<a href=wel.jsp?pageNow="+i+">["+i+"]</a>");

}

//下一页

if(pageNow!=pageCount){

out.println("<a href=wel.jsp?pageNow="+(pageNow+1)+">下一页</a>");

}

%>

运行效果:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-12-29
LZ你若是不嫌麻烦可以自己写分页代码

基本思路是:查询数据库得到所有数据总数、自己设定一个页面显示数量、总数/数量=页数
然后sql语句查询每页的数据(我默认你会写这个语句)
至于页面上的1、2、3……你知道总页数,循环一下就出来了

当然,自己写的也许会有很多BUG,所以我建议你用pager-lib.jar
这个jar包封装了很多实现分页的功能,找个例子看看就会了
不过建议你尝试自己写分页,这样对JSP的理解有帮助追问

pager-lib.jar
这个包怎么用呀

追答

http://wenku.baidu.com/view/fc2042114431b90d6c85c73e.html

这个百度文档说得很详细

你照着这个试试吧

不过要想做得好,后台还是要写java类代码的,比如做一个辅助工具类,一个分页数据实体类,你先不用搞这么麻烦,先试试把功能做出来再深入吧

本回答被提问者采纳
第2个回答  2011-12-29
下一个开源的分页jar包就ok了追问

点到那个数字 就跳转到我点的那个数字页面,(不过我用的一下个类)

第3个回答  2011-12-29
把当前页当成一个参数传到后台
相似回答