operateDB为一个后台数据库处理类,这里以javaBean的形式出现
本程序的数据库中的数据共计有22条,每页9条数据,共分三页显示,1 2 3为页数,我现在的问题是,不管是不是当前页,其上面老是又连接,我得意思是如果1是当前页,那么1上没有连接,2 3上有连接,如果2是当前页,那么1 3三有连接,2上没有连接,这样应当如何做呢
------------------------------------------------- 
<%
     //需要显示的总的页数
     int page_count=0;
     //总记录数目
     int record_count=0;
     //每页的记录数目
     int page_record=9;
     //当前页
     int current_page=0;
     //获取当前页
     String just=request.getParameter("current_page");
     if(just==null){
     current_page=1;
     } else {
     current_page=Integer.parseInt(just);
     }
     //定义InitialContext,获得记录总数目
     InitialContext ctx=new InitialContext();
     operateDB.getConn(ctx);
     ResultSet rs=operateDB.getResultSet("select count(*) from sys_userControl");
     while(rs.next()){
     record_count=rs.getInt(1);
     }
    
     //计算总的页数
     page_count=(record_count+page_record-1)/page_record;
     //定义分页查询的sql语句
     String sql="select top "+page_record+" user_id,username from sys_userControl where user_id not in(select top "+((current_page-1)*page_record)+" user_id from sys_userControl order by user_id ASC) order by user_id ASC";
     out.print(sql);
     rs=operateDB.getResultSet(sql);
     out.print("<table border=1 width=400><tr><td>编号</td><td>用户名</td><td>察看详情</td><td>修改</td><td>删除</td></tr>");
     while(rs.next()){
     int user_id=rs.getInt(1);
     String username=rs.getString(2);
     out.print("<tr height=20><td>"+user_id+"</td><td>"+username+"</td><td></td><td></td><td></td></tr>");
     }
     out.print("<tr><td colspan=5 height=20 align=right>");
     for(int i=1;i<=page_count;i++){
     out.print("<a href=ceshi.jsp?current_page="+i+">"+i+"</a>");
     out.print("&nbsp;");
     }
     out.print("</td></tr></table>");
     operateDB.closeResource();
    
    
    
     %>

解决方案 »

  1.   

    <%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
    <%@ page import="java.util.*"%>
    <jsp:useBean id="MP3" class="com.msober.Administrator.mp3.MP3DAO"  scope="page"></jsp:useBean>
    <%request.setCharacterEncoding("gb2312");%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>歌手列表</title>
    <script language=javascript1.2 src="../../Administrator/mp3/mp3.js"></script> 
    <style type="text/css">
    <!--
    .STYLE1 {
    color: #FFFFFF;
    font-weight: bold;
    }
    body,td,th {
    font-size: 12px;
    }
    a:link {
    color: #3399FF;
    }
    a:visited {
    color: #FFCC00;
    }
    body {
    margin-top: 20px;
    }
    -->
    </style>
    </head><body>
    <%
    String singer_id = request.getParameter("singer_id")!=null?request.getParameter("singer_id"):"";   //歌手ID
    String page_type = request.getParameter("flag")!=null?request.getParameter("flag"):"";   
    String singers_id = request.getParameter("index_id")!=null?request.getParameter("index_id"):"";   //歌手ID
    String mess = "";
    if(page_type.equals("singerDel")){
    mess = MP3.deleteSingers(singer_id);
    out.println("<script language=javascript1.2 >alert('"+mess+"')</script> ");
    }
    else if(page_type.equals("singersDel")){
    mess = MP3.deleteSingers(singers_id);
    out.println("<script language=javascript1.2 >alert('"+mess+"')</script> ");
    }%>
    <form id="form1" name="form1" method="post" action="">
    <input type=hidden name=index_id >
      <table width="90%" border="0" align="center" cellspacing="1" bgcolor="#668CD9">
        <tr>
          <td height="20" colspan="5" align="center" background="../../manage/images/nclass.files/admin_bg_1.gif"><span class="STYLE1">歌手列表</span></td>
        </tr>
        <tr>
    <td width="5%" height="20" align="center" bgcolor="#e8f1ff">序号</td>
          <td height="20" align="center" bgcolor="#e8f1ff"><a href="javascript:singer_select_all()" title="">全选</a>
          <td width="30%" height="20" align="center" bgcolor="#e8f1ff">歌手姓名</td>
          <td width="10%" height="20" align="center" bgcolor="#e8f1ff">歌手性别</td>
          <td width="30%" height="20" align="center" bgcolor="#e8f1ff">歌手类型</td>
          <td height="20" align="center" bgcolor="#e8f1ff">操作</td>
        </tr>
    <%
     Hashtable[] ht=null;
     try{
      ht = MP3.querySingers();
     }catch(Exception e){}
    int intPageSize;//总页数
        int intRowCount;//记录总数
        int intPageCount;//页面参数
        int intPage;//定义变量用来传递page
    int kk = 0;
         String strPage;
         intPageSize=15;
         strPage=request.getParameter("page");
        if(strPage==null)
         {
         intPage=1;
         }
        else
         {
         intPage=Integer.parseInt(strPage);
         if(intPage<1)
         intPage=1;
         }
         if(ht!=null)
         {
         intRowCount=ht.length;//取得总记录数
         }
         else
         intRowCount=0;
         intPageCount=(intRowCount+intPageSize-1)/intPageSize;//总页数的值
         if(intPage>intPageCount)
       intPage=1;
       if(intRowCount==0){}
       //out.print("现在还没有数据");
       else{
          for(int i=0,j=((intPage-1)*intPageSize);i<intPageSize&&j<intRowCount;i++,j++)
          {
      kk++;%>
        <tr>
    <td width="5%" height="20" align="center" bgcolor="#e8f1ff"><%=kk%></td>
          <td width="5%" height="20" align="center" bgcolor="#e8f1ff"><input type="checkbox" name="select_<%=kk%>" value="<%=ht[j].get("INDEX_ID").toString()%>" /></td>
          <td height="20" align="center" bgcolor="#e8f1ff"><%=ht[j].get("SINGER_NAME").toString()%></td>
          <td height="20" align="center" bgcolor="#e8f1ff"><%=ht[j].get("SINGER_SEX").toString()%></td>
          <td height="20" align="center" bgcolor="#e8f1ff"><%=ht[j].get("singer_type").toString()%></td>
          <td height="20" align="center" bgcolor="#e8f1ff"><a href="ModSinger.jsp?singer_id=<%=ht[j].get("INDEX_ID").toString()%>">修改</a>&nbsp; <a href="SingerList.jsp?singer_id=<%=ht[j].get("INDEX_ID").toString()%>&flag=singerDel">删除</a> </td>
        </tr>
     <%}
        }%>
      </table>
      <table width="90%"  border="0" align="center" cellpadding="1" cellspacing="1" bgcolor="#668CD9">
        <tr>
          
          <td width="600" bgcolor="#e8f1ff"><div style="width:670px;" align="center" class="n1">
            <input type="button" style="cursor:hand" onclick="javascript:deleteMostSinger()" name="Submit" value="批量删除" />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    共<%=intPageCount%>页&nbsp; 每页<%=intPageSize%>条&nbsp;&nbsp;
              <%
           if(intPage>1)
            {%>
              <a href="SingerList.jsp?page=<%=intPage-1%>">上一页</a>&nbsp;
              <%}
           if(intPage<intPageCount)
             {%>
              <a href="SingerList.jsp?page=<%=intPage+1%>">下一页</a>&nbsp;&nbsp;
              <%}
           for(int k=1;k<=intPageCount;k++)
             {
             if(k<intPage+10)
             {%>
              <a href="SingerList.jsp?page=<%=k%>"><%=k%></a>&nbsp;
              <%}
             } %>
            <a href="SingerList.jsp?page=<%=intPageCount%>">尾页</a></div></td>
        </tr>
      </table>
    </form>
    </body>
    </html>
      

  2.   

    这个要用javascript来处理,根据当前的页数来动态产生html代码
      

  3.   

    强烈推荐用分页标签
    http://jsptags.com/tags/navigation/pager/index.jsp
      

  4.   

    MVC不是分得很清楚.偶喜欢class里面不写html
      

  5.   

    我认为自己做分页速度太慢,你总得有程序分析,生成吧?还是在数据库里写存储过程快多了。
    http://community.csdn.net/Expert/topic/4990/4990612.xml?temp=.3624689
      

  6.   

    zhuangyan2004(我爱小玉) ( ) 提供的Tag,看过原代码,发现没有ResultSet处理功能,它只提供一个界面而已,不好用.
      

  7.   

    参考Ms-SQL分页方案http://blog.csdn.net/lihonggen0/archive/2004/09/14/103511.aspx比较详细,也一样没考虑通用.