永发信息网

有关分页的问题

答案:1  悬赏:70  手机版
解决时间 2021-06-06 04:02

<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<%@ page import="java.sql.*" %>
<jsp:useBean id="connect" class="conn.conn" scope="page"/>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<head>
<%String username=(String)session.getAttribute("username"); %>
<style type="text/css">
<!--

div.pic { margin:10px;padding:10px 0 0 0; clear:left; }
div.pic a.tn{float:left;}

div.pic a.tn{ width:100px; margin-left:32px}
a.tn img { border:1px solid #333; border-width:1px 2px 2px 1px; width:96px; height:96px;}
div.pic ul{ margin:0 0 0 30px; padding:0 0 0 0.5em; float:left; width:350px}
div.pic li { list-style:none; font-size:small; line-height:1.2em; margin:0; padding:0;}
div.pic li.little { font:bold small "宋体"; padding-top:0.5em; border-bottom: 1px solid;}
div.pic li.catno { color:#776; text-align:right;}
div.pic li.price { color:#776; text-align:right; font-style:italic}
._div{height:600px;width:800px;border:1px solid }


-->
</style>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>Insert title here</title>
</head>
<body>

<%
int number=0;
int pageline=5; //每页记录数
int totalrec=0; //数据集的总记录数
int intpagecount=0; //总页数
int intpage=0; //当前页数
try {
String realPath=application.getRealPath(connect.getSpath());
connect.setRealPath(realPath);

String sql="select * FROM goods where offerusername='"+username+"'";

ResultSet rs = connect.executeQuery(sql);

while(rs.next()) {
number++;
totalrec++;

}
rs.close();

connect.closeAll();
}
catch (Exception e) {

connect.closeAll();
out.println(e.toString());
}
if(number==0)
{
%>
<div>暂时没有相关记录</div>

<%
}
else
{
if(totalrec==0)
intpagecount=0;
else
intpagecount=(totalrec-1)/pageline+1;
if(intpagecount>0) //总页数大于0,if程序断开
{
if(request.getParameter("page")!=null) //page是链接参数或者控件名称,表示当前页号,赋值给intpage
intpage=Integer.parseInt(request.getParameter("page"));
if(intpage>intpagecount)
intpage=intpagecount; //如果当前页数大于总页数,则当前页数等于总页数
if(intpage<1)
intpage=1; //如果当前页数小于1,则把它置为1
try { //这个是用来获取异常的

// Class.forName("sun.jdbc.odbc.JdbcOdbcDriver") ;
// String url="jdbc:odbc:jsp_lesson";
// Connection conn= DriverManager.getConnection (url, "","");
// Statement stmt = conn.createStatement();

String realPath=application.getRealPath(connect.getSpath());
connect.setRealPath(realPath);
//定义数据查询语句
String sql="select * from goods where offerusername='"+username+"'";
//执行查询,并保存到结果集变量rs中
ResultSet rs = connect.executeQuery(sql);
for(int i=1;i<=(intpage-1)*pageline;i++)
rs.next();
for(int i=1;i<=pageline;i++)
{ //显示当前的记录,for开始

//下面是用来显示查询结果的
//用循环来输出数据库中的记录
while(rs.next()) { //循环直到数据库中记录为空,为空时rs.next()==null,这时循环结束
//输出数据中字段为username的值
String name=rs.getString("g_name");
String num=rs.getString("num");
String photo=rs.getString("photo");
String price=rs.getString("price");
String nowprice=rs.getString("nowprice");
String goodstime=rs.getString("goodstime");
String status=rs.getString("status");
String description=rs.getString("description");



//输出数据中字段为password的值
%>
<div class="pic">
<a class="tn" href="<%=photo %>"><img src="<%=photo %>" /></a>
<ul>
<li class="little"><%=name %></li>
<li class="price"><%=price %></li>
<li class="catno">查看详情</li>

</ul>
</div>

<%
}
}

rs.close();

connect.closeAll();
}
catch (Exception e) {

connect.closeAll();
out.println(e.toString());
}
}
}
%>

<div>
<right>&nbsp;&nbsp;共<strong><%=totalrec %></strong>条记录,第<strong><%=intpage %></strong>页/共<strong><%=intpagecount %></strong>页</right>
<%
if(intpage<2) //如果当前页数小于2,则首页和上一页无连接
{
%>
<font>上一页</font>
<%
}
else
{
%>
<a href="mytest1.jsp?page=<%=intpage-1 %>">上一页</a>
<%
}
if(intpage-intpagecount>=0)
{
%>
<font>下一页</font>
<%
}
else
{
%>
<a href="mytest1.jsp?page=<%=intpage+1 %>">下一页</a>

<%
}
%>

</div>

<div><a href="upload.jsp">继续上传商品</a></div>
</body>
</html>

这是我的一个jsp页面,分页的时候第一页会显示所有记录 ,第二页会显示5条记录过后的所有记录,照此类推。有谁知道出现了什么问题吗?? 帮帮忙

最佳答案

你的for循环中嵌套了while循环,只要for满足一个条件,while就会将读取数据库中的全部数据,你可以这样试试看:
for(int i=1;i<=pageline,rs.next();i++)
{ //显示当前的记录,for开始


String name=rs.getString("g_name");
String num=rs.getString("num");
String photo=rs.getString("photo");
String price=rs.getString("price");
String nowprice=rs.getString("nowprice");
String goodstime=rs.getString("goodstime");
String status=rs.getString("status");
String description=rs.getString("description");


}

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
请电脑大师看看我的电脑配置垃圾不
圣斗士有天界篇吗
无锡新开的科技馆要门票吗?具体地址在哪
摩托罗拉 Z6可以装内存卡嘛?
天元区招商银行(株洲高新区支行)地址在什么地
PSP 游戏王4 初始存档
索爱w580c现在上海多少钱、这部机好不好
赣州市107路公交早班车是几点出发开往市区?
急急!!!我的兔子几打滚就死了是为啥?
去梦幻藏宝阁卖东西都有什么手续?物品多久可
数学题啊 111
魔兽世界冰霜、奥法PK视频
英雄岛不能走动了
龙亭区开封深圳市中医院友好医院哪位知道具体
流行蝴蝶剑里怎么修改里面的人物?
推荐资讯
69年天秤座2009年运势
一个胸小一个胸大怎么办
亲们、、拜托发几包贤兔的文文给我吧!!
拍拍购物后不加元宝
PSP600MB一下的游戏都有什么
转载问问图标可以直接点亮问问吗?
永定区张家界大庸桥信用社地址在什么地方,想
我想自学日语 ,
阳明区牡丹江吉祥宝宝婴儿游泳馆地址有谁知道
QQ蓝钻怎么用免费宝宝啊?
AVIconverter setup.exe哪里有下载的?谁有的
处女座女人和天秤座男人的感情中、天秤座爱过
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?