JAVA 用JSP分页有数字

 我来答
千锋教育
2015-12-15 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
展开全部

带有数字分页的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>");

}

%>

运行效果:

在向王庙烹饪的深海鱼
2011-12-29 · TA获得超过233个赞
知道小有建树答主
回答量:143
采纳率:0%
帮助的人:235万
展开全部
LZ你若是不嫌麻烦可以自己写分页代码

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

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

这个百度文档说得很详细

你照着这个试试吧

不过要想做得好,后台还是要写java类代码的,比如做一个辅助工具类,一个分页数据实体类,你先不用搞这么麻烦,先试试把功能做出来再深入吧
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友d5b6f35
2011-12-29
知道答主
回答量:59
采纳率:0%
帮助的人:28万
展开全部
下一个开源的分页jar包就ok了
追问
点到那个数字 就跳转到我点的那个数字页面,(不过我用的一下个类)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
泡常味你碎与1d
2011-12-29 · 超过27用户采纳过TA的回答
知道答主
回答量:257
采纳率:0%
帮助的人:110万
展开全部
把当前页当成一个参数传到后台
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式