首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

实现一个分页功能时出现有关问题,请教

2011-12-10 
实现一个分页功能时出现问题,请教!我的希望是,通过一个页面连接到该页面时,将自动分页显示数据库中该表中

实现一个分页功能时出现问题,请教!
我的希望是,通过一个页面连接到该页面时,将自动分页显示数据库中该表中的数据;然后进入该页面时,通过输入查询或点击“上页”、“下页”,也能正常显示数据。
注:ConDB是写好的连接数据库并能执行连接数据库更新和查询的类函数。
        这个程序运行的问题提示说:变量“cusquery”和“topage”没初始化,但这两个值已经赋初值了呀。大家有空帮忙给看一下   Thanks!

代码如下:

——————————————————————————————————
<%@   page   language= "java "   contentType= "text/html;   charset=UTF-8 "
        pageEncoding= "UTF-8 "%>
<!DOCTYPE   HTML   PUBLIC   "-//W3C//DTD   HTML   4.01   Transitional//EN ">
<%request.setCharacterEncoding( "gb2312 ");%>
<%@page   import= "cn.ConDB "%>
<%@page   import= "java.sql.* "%>
<html>
<head>
<meta   http-equiv= "Content-Type "   content= "text/html;   charset=UTF-8 ">
<title> Insert   title   here </title>
</head>
<body>
<form   action= "customerEdit.jsp ">
<table>
        <tr>
                <td> 顾客账户名 </td>
                <td> <input   type= "text "   name= "cusquery "> </td>
                <td> <input   type= "submit "   name= "submit "   value=查询> </td> </tr>  
</table>
<table>
<tr>
        <td> 编号 </td>
        <td> 顾客帐号 </td>
        <td> 顾客真实姓名 </td>
        <td> 性别 </td>
        <td> 地址 </td>
        <td> 联系电话 </td> </tr>
<%
        ConDB   condb=new   ConDB();
        String   sql=null;
        String           cusquery=request.getParameter(cusquery);
        //执行查询,根据表单数据进行判断。
        if(cusquery==null||cusquery.equals( " ")){
                sql= "select   *   from   customer ";
        }
        else
                sql= "select   *   from   cusomer   where   username= ' "+cusquery+ " ' ";
        ResultSet   rs=condb.executeQuery(sql);
        int   pagesize=2;//每页面显示的记录数
        int   showpage=1;//默认显示的页面
        int   rowcount=0;//记录的行数
        int   pagecount=0;//显示的页面数
        int   temp=0;//用于删除帐号时的页面传值
        if(rs==null){
                //无结果,则不显示信息
                out.println( "暂无注册用户 ");
        }
        else{
                rs.last();
                rowcount=rs.getRow();
                pagecount=(((rowcount%pagesize==0)?(rowcount/pagesize):((rowcount/pagesize)+1)));


                String           topage=request.getParameter(topage);
                if(topage!=null){
                        showpage=Integer.parseInt(topage);
                        if(showpage> pagecount){
                                showpage=pagecount;
                        }else   if(showpage <=0){
                                showpage=1;
                        }
                }
                //定位到显示页面中所有读取的结果集中记录的位置
                rs.absolute((showpage-1)*pagesize+1);
                //显示记录信息
                for(int   i=1;i <=pagesize;i++){
%>
<tr>
        <td> <%=rs.getInt(1)%> </td>
        <td> <%=rs.getString(2)%> </td>
        <td> <%=rs.getString(4)%> </td>
        <td> <%=rs.getString(5)%> </td>
        <td> <%=rs.getString(6)%> </td>        
        <td> <%=rs.getString(7)%> </td>
        <td> <a   href= "del_customer.jsp?customerid= <%=(temp=rs.getInt(1))%> "   target= "mainFrame "> 删除 </a> </td> </tr>
        <%
                if(!rs.next()){
                        break;
                }
        }
        %>
<tr   align= "center "   valign= "middle "   bgcolor= "#DFE7F0 ">
        <td   height= "23 "   colspan= "7 ">     <a   href= "customerEdit.jsp?topage= <%=showpage-1%> "> 上页 </a>   <a   href= "customerEdit.jsp?topage= <%=showpage+1%> "> 下页 </a> </td>
        <td> 共有 <%=rowcount%> 名用户 </td>
        <td> 每页 <%=pagesize%> 名用户 </td> </tr>                                                        
<%                  
        }
        //关闭连接,释放资源。
        if(condb!=null){
                try{
                        condb.close();


                        condb=null;
                }
                catch(Exception   e){
                }
        }
%>
</table>
</form>
</body>
</html>

———————————————————————————————————

[解决办法]
request.getParameter(cusquery);和request.getParameter(topage);會出現空指針異常。

[解决办法]
你给赋值null就是空值啊,跟没赋值一样啊。再者说request.getParameter(topage);的正确语法应该是request.getParameter( "topage ");加双引号的吧?为空的可能也是你传值的时候的问题,你可以在request.getParameter( "topage ");加上 if(topage==null){ topage=(String)session.getValue( "[页面名].topage ");}
session.putValue( "[页面名].topage ", topage);

热点排行