永发信息网

有关分页的问题

答案:1  悬赏:70  手机版
解决时间 2021-06-06 04:02
  • 提问者网友:川水往事
  • 2021-06-05 18:40

<%@ 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 %>" alt="" /></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条记录过后的所有记录,照此类推。有谁知道出现了什么问题吗?? 帮帮忙

最佳答案
  • 五星知识达人网友:时间的尘埃
  • 2021-06-05 20:01

你的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");


}

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯