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

JSP分页有关问题~哪位高手能帮帮小弟我啊 结果!

2011-12-27 
JSP分页问题~谁能帮帮我啊? 在线等结果!!小弟今天写了个JSP分页但是第二页显示的还是和第一页一样的记录谁

JSP分页问题~谁能帮帮我啊? 在线等结果!!
小弟今天写了个JSP分页   但是第二页显示的还是和第一页一样的记录   谁能帮我看看怎么回事啊?
<HTML>  
       <HEAD>
          <link   href= "CSS/styles_content.css "   rel= "stylesheet "   type= "text/css "/>
       </HEAD>
          <body>
          <form   action= "/Offic/depe.do "   method= "post ">
            <table   width= "95% "   align= "center "   cellpadding= "4 "   cellspacing= "1 "   bgcolor= "#859CAE "   class= "page ">
          <tr   bgcolor= "#F5F7FA ">
            <td   height= "16 "   align= "center "   bgcolor= "#E6E9EF "   class= "page "> <b> 部门名称 </b> </td>
            <td   height= "16 "   align= "center "   bgcolor= "#E6E9EF "   class= "page "> <b> 上级部门 </b> </td>
            <td   height= "16 "   align= "center "   bgcolor= "#E6E9EF "   class= "page "> <b> 部门电话 </b> </td>
            <td   height= "16 "   align= "center "   bgcolor= "#E6E9EF "   class= "page "> <b> 部门备注 </b> </td>
          </tr>
          <%
          int   i   =   0;
          int   ipage=5;//分页单位
          int   allpage;//总页数  
          int   pages;   //接受的页码变量  
          int   cpage   =1;   //当前页  
          int   spage;   //开始页
          int   allCol=0;
          Vector   v   =   null;
          int   DEPID;
          String   DEPNAME;
          int   UPDEPID;
          String   DEPTEL;
          String   ADDITION;
         
          String   sql     =   "select   COUNT(*)   from   DEPARTMENT_TABLE ";
          ConnectionPooling   cp   =   new   ConnectionPooling();
          cp.getStmt();
          ResultSet   pagers=cp.execQuery(sql);
          while(pagers.next()){
          allCol=pagers.getInt(1);
          System.out.println(allCol);  
          }
          //获得总页面数
          allpage   =   (int)Math.ceil((allCol   +   ipage-1)   /   ipage);  
          //判断参数pages是否空  
          if   (request.getParameter( "pages ")==null){


          pages=1;
          }else{
          pages   =   new   Integer(request.getParameter( "pages ")).intValue();
          System.out.println(pages);
          }
          //判断当前页  
          if(pages   >   allpage   ||   pages   ==   0){
          cpage   =   1;
          }else{
          cpage   =   pages;
          }
          //判断起始页
          String   Sqll= "select   DEPID,DEPNAME,UPDEPID,DEPTEL,ADDITION   from   DEPARTMENT_TABLE   where   DEPID   not   in   (select   DEPID   from   DEPARTMENT_TABLE   where   rownum <= "+(cpage-1)*ipage+ ")and   rownum <= "+ipage+ "   order   by   DEPID   desc ";
          System.out.println(Sqll);
          ResultSet   rs=cp.execQuery(Sqll);
          while   (rs.next()){
          DEPID=rs.getInt( "DEPID ");
         
          DEPNAME=rs.getString( "DEPNAME ");
         
          UPDEPID=rs.getInt( "UPDEPID ");
         
          DEPTEL=rs.getString( "DEPTEL ");
         
          ADDITION=rs.getString( "ADDITION ");
          System.out.println( "pages= "+pages);
         
   
        %>  
       
          <tr   bgcolor= "#F5F7FA ">
            <td   height= "16 "   align= "center "   bgcolor= "#F5F7FA "   class= "page "> <%=DEPNAME%> </td>
            <td   height= "16 "   align= "center "   bgcolor= "#F5F7FA "   class= "page "> <%=UPDEPID%> </td>
            <td   height= "16 "   align= "center "   bgcolor= "#F5F7FA "   class= "page "> <%=DEPTEL%> </td>
            <td   height= "16 "   align= "center "   bgcolor= "#F5F7FA "   class= "page "> <%=ADDITION%> </td>
          </tr>
          <%}   %>
            <tr   bgcolor= "#F5F7FA ">
            <td   colspan= "4 "   height= "16 "   align= "right "   bgcolor= "#E6E9EF "   class= "page ">
            条记录共 <%=   allpage   %> 页  
            <%   if   (cpage> 1)   {   %>


            <a   href= "detpshow.jsp?pages= <%=   cpage-1   %> "> 上页 </a>
            <%   }   if   (cpage <allpage)   {   %>
            <a   href= "detpshow.jsp?pages= <%=   cpage+1   %> "> 下页 </a>
            <%   }   %>   /   <%   for   (i=1;i <=allpage;i++)   {   if   (i   !=   pages)   {%> <a   href= "detpshow.jsp?pages= <%=   i   %> "> <%=   i   %> </a>   <%   }}   %>
            </td>
            </tr>
          </table>
          </form>
     </body>  
</HTML>


[解决办法]
参考一下这个:
<div class= "descr "> welcome to come here </div>
<%
int countPerPage=10;//每页显示条数
int i=1,totalCount=0;
sql = "select count(*) from flm_gb " ;
rs = statement.executeQuery(sql) ;
while(rs.next())
totalCount=rs.getInt(1);
int pageCount=(totalCount+countPerPage-1)/countPerPage;

sql= "SELECT * FROM flm_gb order by id desc; ";
rs=statement.executeQuery(sql);
rmeta = rs.getMetaData();
numColumns=rmeta.getColumnCount();
String pages = request.getParameter( "page ") ;
int pageInt=1;
i=1;
if(pages==null){}else{pageInt = Integer.parseInt(pages);}
while(i <=countPerPage*(pageInt-1)&&rs.next()){i++;}

i=0;
while(rs.next()&&i <countPerPage) {
i++;
%>
<code> <%=rs.getString( "id ")%> .&nbsp; <b> <%=dohtm1(rs.getString( "name "))%> : </b>    <a href= "# " title= " <%=dohtm1(rs.getString( "address "))%> "> 联系方式 </a>    <a href= "# "title= " <%=rs.getString( "ip ")%> "> IP </a>    <a href= "# "title= " <%=rs.getString( "date ")%> "> 时间 </a> <br /> <%=dohtm1(rs.getString( "content "))%> <%if(rs.getString( "reply ")!=null){ %> <cite> <%=rs.getString( "reply ")%> </cite> <%}%> </code>
<%}%>
<div align= "right "> <font color= "#FF0000 "> <%=pageInt%> </font> / <%=pageCount%>   <%=countPerPage%> 条/页 共 <%=totalCount%> 条 转到第
<%
for(int j=1;j <=pageCount;j++){
if(j!=pageInt){
%>
<a href= "guestbook.jsp?page= <%=j%> "> <%=j%> </a>
<%
}else{
%>
<%=j%>
<%
}
}
%>
   </div>
</div>
[解决办法]
select DEPID from DEPARTMENT_TABLE where rownum <= "+(cpage-1)*ipage+ ")and rownum <= "+ipage+ " order by DEPID desc

这句你的rownum小于(cpage-1)*ipage 又小于你的ipage(这个完全没必要吧?)
你就把你的SQL子查询语句改成
select DEPID from DEPARTMENT_TABLE where rownum <= "+(cpage-1)*ipage+ ")order by DEPID desc


试下
呵呵~本人没上机验证,不一定正确哦~请见谅
[解决办法]
个人觉得这里世是问题所在:
"select DEPID from DEPARTMENT_TABLE where rownum <= "+(cpage-1)*ipage
建议改写成:
"select DEPID from DEPARTMENT_TABLE where rownum <= "+(cpage-1)*ipage + "order by DEPID DESC "
试一试。
还有,建议不要在jsp页面写这么复杂的查询,弄得页面很乱。可以用一个Servlet查询,Servlet查询后将结果传递给jsp页面,由jsp页面负责显示。

热点排行