注册 登录
编程论坛 J2EE论坛

查询分页的问题

发布于 2010-05-05 09:42, 422 次点击
以下是我的完整代码 其中使用了两个BEAN 查询时可以显示第一页数据 但是点击下一页或者末页时报错,谁帮忙调试下 看看问题在哪啊????(代码有点乱,麻烦大家了)
只有本站会员才能查看附件,请 登录

type Exception report
message  

description The server encountered an internal error () that prevented it from fulfilling this request.

exception  

org.apache.jasper.JasperException
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:370)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


root cause  

java.lang.NullPointerException
org.apache.jsp.chap05.usepage.check_jsp._jspService(org.apache.jsp.chap05.usepage.check_jsp:75)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

程序代码:
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="java.sql.*" %>
<%@ page import="page.*" %>
<a href="login.jsp">返回首页</a>!</h1>
<jsp:useBean id="pagebean" scope="session" class="page.pagebean"/>
<jsp:useBean id="databean" scope="session" class="page.conndb"/>
<HTML>
<title>用户数据</title>
<BODY>
<%
  
   String s[];
   request.setCharacterEncoding("gb2312");//改变传递时的编码 来处理汉字乱码
   String name=request.getParameter("textfield");
   s = name.split(" ");
%>
<%
         ResultSet rs;
         boolean flag = false ;
      
           String sql="SELECT * FROM da_jnwjb WHERE tmh LIKE '%"+s[0]+"%'  ";
            for(int j=1;j<s.length;j++){
               sql+=" OR tmh LIKE '%"+s[j]+"%'";
               }//拼接SQL语句 实现查询S中每一个元素
         rs=databean.executeQuery(sql);         //执行sql语句,使用了javabean conndb中的executeQuery
             if(rs.next()){
                // 如果有内容,则此处执行,表示查询出来
                flag = true ;
                }
        
         String pages=request.getParameter("dipage");  //读取当前的页数
         rs.last();
         int countRecord=rs.getRow();  //得到记录的条数
         int countPageRecord=5;        //设置每页记录条数
         if(pages==null||(pages.trim()).length()==0)   //如果当前页数不存在,也就是初次进入页面
          {
               pagebean.setAll(countRecord,countPageRecord); //参数初始化,使用javabean pagebean中的setall,当前页数设为1
               }
           else
           {
               try
               {
                   pagebean.setCurrentPage(Integer.parseInt(pages));
                   }
               catch(Exception e)
                {
                   out.println("参数不正确!");
                   }
            }
         //当前记录号
         int currentRecord=(pagebean.getCurrentPage()-1)*pagebean.getSizePage();
         if(currentRecord==0)
         {
             rs.beforeFirst();
             }
         else{
           rs.absolute(currentRecord);
           }
         //显示当前页数据
         out.print("<Table Border>");
         out.print("<TR>");
         out.print("<TH width=100>"+"分类号");
         out.print("<TH width=100>"+"全宗号");
         out.print("<TH width=100>"+"页号");
         out.print("<TH width=150>"+"文件题名");
         out.print("<TH width=200>"+"sort1");
         out.print("</TR>");
        
         int i=0;
         while(rs.next())
         {
   
             out.print("<TR>");
             out.print("<TD >"+rs.getString("flh")+"</TD>");
             out.print("<TD >"+rs.getString("qzh")+"</TD>");
             out.print("<TD >"+rs.getString("yh")+"</TD>");
             out.print("<TD >"+rs.getString("tmh")+"</TD>");
             out.print("<TD >"+rs.getString("sort1")+"</TD>");
             out.print("</TR>") ;
             i=i+1;
             if(i>=pagebean.getSizePage()) {
                                                break; //当前页显示完,则退出循环
                                                   }}
             out.print("<TR><td colspan=8 align=center>");
             out.print("共"+pagebean.getCountRecord()+"条记录,共"+pagebean.getCountPage()+"页,当前第"+pagebean.getCurrentPage()+"页,每页"+pagebean.getSizePage()+"条记录,");
             if(pagebean.getCurrentPage()==1)//当前是首页
                     ;
             else//当前不是首页
             {
                  out.print("<a href=check.jsp?dipage=1>首页</a>,");
                  out.print("<a href=check.jsp?dipage="+(pagebean.getCurrentPage()-1)+">上一页</a>,");
                  }
             if(pagebean.getCurrentPage()==pagebean.getCountPage())//当前是末页
                    ;
             else//当前不是末页
            {
                  out.print("<a href=check.jsp?dipage="+(pagebean.getCurrentPage()+1)+">下一页</a>,");
                  out.print("<a href=check.jsp?dipage="+pagebean.getCountPage()+">末页</a>");
                  }

             out.print("</td></tr>");
             out.print("</Table>");
             databean.freeRs(rs);  //释放rs
             %>
             <%
    if(!flag){    // 没查到数据跳转到success.jsp

%>
    <jsp:forward page="failure.jsp"/>
<%
    }
%>

</BODY>
</HTML>

0 回复
1