一个数据列表分页显示,总是显示第一页,无法显示“下一页”,pageNo传值的问题
我想做一个具有分页显示数据库中数据功能的页面,但是页面总是只显示第一页,点击“下一页”和“最后页”一点反应也没有。链接的过程中,状态栏里显示:"?pageNo=2"但是地址栏里却显示:“?%20pageNo=2",我也不知道是为什么?自己猜测是pageNo传值的时候出了点问题,或是<a href=.....>里出了问题。但也不知道哪里出了问题,应该怎么改,所以请各位高手帮一下忙了。
(以下是我的代码,稍微长了一点)
<%@ page contentType="text/html; charset=gb2312" import="java.sql.*" %>
<jsp:useBean id="showvindays" scope="page" class="classes.connect"/>
<html>
<head>
<title>入库明细报表</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body background="2people.jpg">
<%!
String pageNo;
int i, j,k;
String StockNo,ProductNo,CommodityName,DepotNo,Remark,EmployeeNo,OrderChecker;
Date InDate,MakeDate;
int Quantity;
float Price,Amount;
%>
<%
int total;
total=0;
String strSQLsize;
strSQLsize="SELECT StockNo FROM VInDay where InDate is not null";
ResultSet RSsize=showvindays.executeQuery(strSQLsize);
while(RSsize.next())
{
total=total+1;
}
RSsize.close();
%>
<%//pageNo表示请求的是第几页
pageNo=request.getParameter("pageNo");
//out.println(pageNo);
//如果pageNo为null值,则赋值为1
if(pageNo==null)
{
pageNo="1";
}
//j表示的是pageNo对应的整型值
j=Integer.parseInt(pageNo);
//当j的值小于1时,赋值为1
if(j<1)
j=1;
//当j的值大于总页数时,赋值为total
if(j>total)
j=total;
%>
<% //读取数据库记录
try
{
String strSQL="select * from VInDay where InDate is not null order by InDate desc";
ResultSet RSa=showvindays.executeQuery(strSQL);
//记录集移动到相应的位置
//j为逻辑页数
for (k=0;k<j-1;k++)
{
RSa.next();
}
i=0;
k=1;
while(RSa.next())
{
i=i+1;
//超过1条
if(i==2)
{
k=0;
break;
}
StockNo = RSa.getString(1);//out.println(StockNo);
DepotNo=RSa.getString(2);
InDate=RSa.getDate(3);
ProductNo = RSa.getString(4);
CommodityName=RSa.getString(5);
Price = RSa.getFloat(6);
Quantity= RSa.getInt(7);
Amount= RSa.getFloat(8);
Remark = RSa.getString(9);
EmployeeNo=RSa.getString(10);
OrderChecker = RSa.getString(11);
MakeDate=RSa.getDate(12);
}
i=i-k;
//关闭记录集
RSa.close();
}
catch(Exception ex) //捕捉异常
{
ex.printStackTrace();
}
%>
<%//以下代码行是用来显示页面数的
//当j大于1时,就会显示“第一页”、“上一页”字样
if(j>1)
{
%>
<a href="showvindays.jsp?pageNo=1">第一页</a>
<%
int ii=Integer.parseInt(pageNo,10);
if(ii>1)
ii=ii-1;
String ssTmp=Integer.toString(ii);
%>
<a href="showvindays.jsp?pageNo=<%=ssTmp%>">上一页</a>
<%
}
//同样地,当j小于总页数时,就会显示“下一页”,“最后页”字样
if(j<total)
{
int ii=Integer.parseInt(pageNo,10);
if(ii<total)
ii=ii+1;
String ssTmp=Integer.toString(ii);
//out.println(ssTmp);
%>
<a href="showvindays.jsp? pageNo=<%=ssTmp%>">下一页</a>
<a href="showvindays.jsp?pageNo=<%=total%>">最后页</a>
<%
}
if (total<j)
j=total;
%>
<p> <font color="#FF0000" size="5" face="华文中宋">入库明细报表</font></p>
<table width="58%" border="1" align="center">
<tr>
<td>入库日期</td>
<td align="left"><%=InDate%></td>
</tr>
<tr>
<td width="40%">已入库采购单编码</td>
<td width="60%" align="left" ><%=StockNo%> </td>
</tr>
<tr>
<td>所到仓位编码</td>
<td align="left"><%=DepotNo%></td>
</tr>
<tr>
<td>商品编号</td>
<td align="left"><%=ProductNo%></td>
</tr>
<tr>
<td>商品名称</td>
<td align="left"><%=CommodityName%></td>
</tr>
<tr>
<td>商品单价</td>
<td align="left"><%=Price%></td>
</tr>
<tr>
<td>商品数量</td>
<td align="left"><%=Quantity%></td>
</tr>
<tr>
<td>商品总价</td>
<td align="left"><%=Amount%></td>
</tr>
<tr>
<td>已入库采购单备注</td>
<td align="left"><%=Remark%></td>
</tr>
<tr>
<tr>
<td>录入员编码</td>
<td><%=EmployeeNo%></td>
</tr>
<tr>
<td>复核员编码</td>
<td><%=OrderChecker%></td>
</tr>
<td>此采购单生成日期</td>
<td align="left"><%=MakeDate%></td>
</tr>
</table>
<tr><td height="1" bgcolor=""colspan="2">
<hr color="#3399ff">
结果共<%=total%>页,显示第<%=j%>页</td>
<td algin="left" colspan="2" height="32">
</body>
</html>
大家可以重点看一下: pageNo=request.getParameter("pageNo");
这一句是不是可以这样传,
或是:<a href="showvindays.jsp? pageNo=<%=ssTmp%>">下一页</a>
是不是可以这样链接过去?
其他我也是真的不太明白哪里会出问题了.