分页问题,郁闷,能显示,一翻页就出问题... http://blog.csdn.net/funcreal里有一个思路,看看 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 ResultSet rs = (ResultSet)request.getAttribute("rs");---------第一次到该页面之前,应该还到过其它的东东里面吧(比如说action)要不然怎么会第一次就有request.getAttribute("rs");翻页后rs为空。 回复人: JK_10000(JK) ( ) 信誉:100 2004-10-16 12:42:00 得分: 0 ResultSet rs = (ResultSet)request.getAttribute("rs");---------第一次到该页面之前,应该还到过其它的东东里面吧(比如说action)要不然怎么会第一次就有request.getAttribute("rs");翻页后rs为空。------------------------------------是啊,这是从servlet send过来的sendResultSet(req,res,rs,"/ViewLog.jsp"); public void sendResultSet(HttpServletRequest req, HttpServletResponse res,java.sql.ResultSet rs, String target) throws ServletException, IOException { req.setAttribute("rs", rs); RequestDispatcher rd = getServletContext().getRequestDispatcher(target); rd.forward(req, res); } <a href="ViewLog.jsp?Pages=<%=1%>">第一页</a><a href="ViewLog.jsp?Pages=<%=OnPage-1%>">上一页</a>----->>>>>>把这些连接从ViewLog.jsp改成那个servlet就是 就是嘛,你将数据存在request里面,当你第一次显示完页面以后request生命结束,里面的东西也同时消失了,当你第二次读时不就没有数据了,当然抱空指针了,放在session里面吧 你这段代码还有问题,你在第一页显示完以后就将resultSet关闭了,下面的页面怎么得到数据,即使不关闭 ,长期占用数据库连接也是不行的,所以应该在Servlet里面将数据全部读出来以后打包成对象集合存入Session中,以后从集合中取数,而不是从resultSet里面 应该在Servlet里面将数据全部读出来以后打包成对象集合存入Session中,以后从集合中取数,而不是从resultSet里面---------------------谢谢回复~ ^_^有这样的实例可以参考么? *_* <%@ page contentType="text/html;charset=gb2312" language="java" import="java.sql.*" errorPage="errorpage.jsp" %><%!int EveryPage=10; //每页显示的记录数;int OnPage=1; //当前显示的页数;int Total=0; //记录的总数;int PageCount=0; //记录的总页数;%><html><head><title>察看日志</title></head><% String userID = (String)session.getAttribute("userID"); if(userID==null){response.sendRedirect("login.jsp");} ResultSet rs = (ResultSet)request.getAttribute("rs");%><body><% rs.last(); //移到最后一条记录; Total = rs.getRow(); //记录的总数; if(Total%EveryPage == 0) //计算出总的页数PageCount; PageCount=Total/EveryPage; else PageCount=Total/EveryPage+1; String Pages=request.getParameter("Pages"); //取得文本框输入的值; if(Pages!=null) { OnPage=Integer.parseInt(Pages);//把Pages转换为整型; //根据输入的值,判断应显示的页; if(OnPage>PageCount) { OnPage=PageCount; } else if(OnPage<=0) { OnPage=1; } } rs.absolute((OnPage-1)*EveryPage+1);//指定指针的位置;%><center> 记录<%=Total%>条,共<%=PageCount%>页,当前在第<%=OnPage%></font>页</center><br/><table align="center" border=1> <tr> <td>操作者编号</font></td> <td>操作时间</font></td> <td>操作名称</font></td></tr><%//循环显示出记录; for(int i=1;i<=EveryPage;i++) {%><tr> <td><%=rs.getString("OH")%></td> <td><%=rs.getString("OT")%></td> <td><%=rs.getString("OM")%></td> </tr><% if(!rs.next())//到达最后的记录时退出for循环; break;}//关闭对象; rs.close();%></table></center><%//当前显示的是不是第一页应该显示的东西; if(OnPage!=1) {%><br/><center> <a href="ViewLog.jsp?Pages=<%=1%>">第一页</a> <a href="ViewLog.jsp?Pages=<%=OnPage-1%>">上一页</a></center><% }//当前显示的是不是最后一页应该显示的东西; if(OnPage!=PageCount) {%><center> <a href="ViewLog.jsp?Pages=<%=OnPage+%>">下一页</a> <a href="ViewLog.jsp?Pages=<%=PageCount%>">最后一页</a></center><% }%></body></html> 用huguangtao的代码吧.他的代码是对的.... 回复人: cocohui(断了线的风) ( ) 信誉:100 2004-10-17 08:17:00 得分: 0 用huguangtao的代码吧.他的代码是对的.... -------------------------不是吧?我怎么看和我写的没什么区别??都是不好用..... *_* 你这段代码还有问题,你在第一页显示完以后就将resultSet关闭了,下面的页面怎么得到数据,即使不关闭 ,长期占用数据库连接也是不行的,所以应该在Servlet里面将数据全部读出来以后打包成对象集合存入Session中,以后从集合中取数,而不是从resultSet里面--------------------------打包成对象集合?这个应该怎么做??谁来教教我哦....谢谢先.... 把rs.close();放到</html>标签的后面试试?</body></html><%rs.close();%> 把rs.close();放到</html>标签的后面试试?</body></html><%rs.close();%>-------------------------------------这样不行的.....数据是存在request里面,当第一次显示完页面以后request生命结束,里面的东西也同时消失了 你这段代码还有问题,你在第一页显示完以后就将resultSet关闭了,下面的页面怎么得到数据,即使不关闭 ,长期占用数据库连接也是不行的,所以应该在Servlet里面将数据全部读出来以后打包成对象集合存入Session中,以后从集合中取数,而不是从resultSet里面--------------------------打包成对象集合?这个应该怎么做??谁来教教我哦....谢谢先....----------------------------还没解决,小声地再问一次.... 是ResultSet rs = (ResultSet)request.getAttribute("rs");的问题,你在这句下再加上:request.setAttribute("rs",rs);就可以了。 是ResultSet rs = (ResultSet)request.getAttribute("rs");的问题,你在这句下再加上:request.setAttribute("rs",rs);就可以了。----------------------------------------不行的说.... 当你编程时心静不下来时,大家都怎么调整自己啊? 菜鸟代码-中文乱码,请高手指点。 哪个高手能伸出援助之手?有关Jfreechar问题 怎么把文件输出的路径指定到/WEB-INF/data.text里 神呀,救救我吧?帮看看下面代码是什么意思呀? 关于SSH2整合jbpm的异常问题,求给力大腿来给解决一下 关于applet的小问题!!在线等。。。。。 一个关于汉字显示的问题? 用JSP怎么实现才能生成XLS报表?能给段代码看看吗?谢谢 jsp初学者问题(关于win2000的连接) 如何把别人的源码一次性导入JB9 从rs中读取各个列值可以打乱顺序读吗?
---------第一次到该页面之前,应该还到过其它的东东里面吧(比如说action)
要不然怎么会第一次就有request.getAttribute("rs");
翻页后rs为空。
ResultSet rs = (ResultSet)request.getAttribute("rs");
---------第一次到该页面之前,应该还到过其它的东东里面吧(比如说action)
要不然怎么会第一次就有request.getAttribute("rs");
翻页后rs为空。------------------------------------是啊,这是从servlet send过来的sendResultSet(req,res,rs,"/ViewLog.jsp"); public void sendResultSet(HttpServletRequest req, HttpServletResponse res,java.sql.ResultSet rs, String target)
throws ServletException, IOException {
req.setAttribute("rs", rs);
RequestDispatcher rd = getServletContext().getRequestDispatcher(target);
rd.forward(req, res);
}
<a href="ViewLog.jsp?Pages=<%=OnPage-1%>">上一页</a>----->>>>>>
把这些连接从ViewLog.jsp改成那个servlet就是
谢谢回复~ ^_^有这样的实例可以参考么? *_*
<%!
int EveryPage=10; //每页显示的记录数;
int OnPage=1; //当前显示的页数;
int Total=0; //记录的总数;
int PageCount=0; //记录的总页数;
%>
<html>
<head><title>察看日志</title>
</head>
<%
String userID = (String)session.getAttribute("userID");
if(userID==null){response.sendRedirect("login.jsp");}
ResultSet rs = (ResultSet)request.getAttribute("rs");
%>
<body>
<%
rs.last(); //移到最后一条记录;
Total = rs.getRow(); //记录的总数;
if(Total%EveryPage == 0) //计算出总的页数PageCount;
PageCount=Total/EveryPage;
else
PageCount=Total/EveryPage+1; String Pages=request.getParameter("Pages"); //取得文本框输入的值;
if(Pages!=null)
{
OnPage=Integer.parseInt(Pages);//把Pages转换为整型;
//根据输入的值,判断应显示的页;
if(OnPage>PageCount)
{
OnPage=PageCount;
}
else if(OnPage<=0)
{
OnPage=1;
}
}
rs.absolute((OnPage-1)*EveryPage+1);//指定指针的位置;
%>
<center>
记录<%=Total%>条,共<%=PageCount%>页,当前在第<%=OnPage%></font>页
</center>
<br/>
<table align="center" border=1>
<tr>
<td>操作者编号</font></td>
<td>操作时间</font></td>
<td>操作名称</font></td>
</tr>
<%
//循环显示出记录;
for(int i=1;i<=EveryPage;i++)
{
%>
<tr>
<td><%=rs.getString("OH")%></td>
<td><%=rs.getString("OT")%></td>
<td><%=rs.getString("OM")%></td>
</tr>
<%
if(!rs.next())//到达最后的记录时退出for循环;
break;
}
//关闭对象;
rs.close();
%>
</table>
</center>
<%
//当前显示的是不是第一页应该显示的东西;
if(OnPage!=1)
{
%>
<br/>
<center>
<a href="ViewLog.jsp?Pages=<%=1%>">第一页</a>
<a href="ViewLog.jsp?Pages=<%=OnPage-1%>">上一页</a>
</center>
<%
}
//当前显示的是不是最后一页应该显示的东西;
if(OnPage!=PageCount)
{
%>
<center>
<a href="ViewLog.jsp?Pages=<%=OnPage+%>">下一页</a>
<a href="ViewLog.jsp?Pages=<%=PageCount%>">最后一页</a>
</center>
<%
}
%>
</body>
</html>
用huguangtao的代码吧.他的代码是对的....
-------------------------不是吧?我怎么看和我写的没什么区别??都是不好用..... *_*
打包成对象集合?这个应该怎么做??谁来教教我哦....谢谢先....
</body>
</html>
<%
rs.close();
%>
</body>
</html>
<%
rs.close();
%>
-------------------------------------
这样不行的.....数据是存在request里面,当第一次显示完页面以后request生命结束,里面的东西也同时消失了
打包成对象集合?这个应该怎么做??谁来教教我哦....谢谢先....----------------------------还没解决,小声地再问一次....
request.setAttribute("rs",rs);
就可以了。
request.setAttribute("rs",rs);
就可以了。----------------------------------------不行的说....