哪位给一个调用这个bean的jsp代码?package com.beans.database;import java.sql.*;
import javax.servlet.*;// 引入servlet包
import javax.servlet.http.*;
import java.math.*;/**
 **类别:数据库分页类
 **作者:晨雨
 **时间:2005-05-20
 **/public class  Page{
   public int curPages;// 当前的页码值
   public int pageRows; // 设置每页显示的记录数
   private int totalRows;// 总记录数
   private int totalPages;// 总页数
   private String strPage="page";// 定义WEB的页码参数,默认为page/*
*取得页面参数page的值
*/
   public void setPages(HttpServletRequest request, String page){
     strPage=page;     String strPage = null;// page参数变量
     try{
       strPage = request.getParameter(page);// request对象取得page的值
      }catch(Exception e){
           //System.out.println("delcolumn"+e.getMessage());
           e.printStackTrace();
      }
      //初始化page
      try{
           if(strPage == null){// 默认没有就设置是第一页
               curPages = 1;
           }else{
               curPages = Integer.parseInt(strPage);// 取得strPage的整数值
               if(curPages < 1)// 如果小于1,同样返回是第一页
                   curPages = 1;
           }
       }catch(Exception e){
           //System.out.print("curPages");
           e.printStackTrace();
       }
   }/*
*设置每页要显示的记录条数
*/
   public void setPageRows(int rows){
       pageRows=rows;
   }/*
*计算总页数的函数,在setTotalRowsPages中调用
*/
   public int getTotalPages(int rowcounts){
     int Pages;  //总页数
     if((rowcounts%pageRows)==0)// 取得余数
        Pages = rowcounts/pageRows;// 每页显示的整数
     else
        Pages=rowcounts/pageRows+1;// 不是的话就加一
     return Pages;// 返回页数
   }/*
*计算总记录数和总页数
*/
   public void getTotalRowsPages(String strSQL,Connection conn) throws Exception{
     Statement stmt = null;
     try{
       stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
       ResultSet rs_count=stmt.executeQuery(strSQL);
       rs_count.last();
       totalRows=rs_count.getRow(); //取得总的数据数
       totalPages=getTotalPages(totalRows); //取出总页数
       rs_count.close();
       rs_count=null;
     }catch (SQLException ex) {
       ex.printStackTrace();
     }finally {
       try {
         if (stmt != null){
            stmt.close();
            stmt = null;
         }
       } catch (SQLException ex1) {
          ex1.printStackTrace();
       }
     }
   }   //public void setPagesTen(int curPages){
     //Math.round();  //四舍五入
     //Math.floor();  //向低取整
     //Math.ceil();   //向高取整
   //}/*
*返回当前页的结果集的数组,参数(sql语句,得到当前页的记录集)
*/
   public String[][] getArrData(String strSQL,Connection conn) throws Exception{
     String[][] strArrData=null;//数据体数组     int rsCount;
     rsCount=(curPages-1)*pageRows;     String sql=null;
     //sql=strSQL+" limit "+rsCount+","+pageRows; //mysql数据库条件方式
     sql="select * from ("+strSQL+") where rownum<="+(rsCount+pageRows);
     sql=sql+" minus select * from ("+strSQL+") where rownum<="+rsCount; //oracle数据库条件方式     Statement stmt = null;
     try{
       stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
       ResultSet rs=stmt.executeQuery(sql);
       int cols=rs.getMetaData().getColumnCount();
       rs.last();
       strArrData=new String[rs.getRow()][cols];
       rs.beforeFirst();
       int i=0;
       while(rs.next()){
         for(int j=0;j<cols;j++){
           strArrData[i][j]=(rs.getString(j+1)==null?"":rs.getString(j+1));
         }
         i++;
       }
       rs.close();
       rs=null;
     } catch(SQLException ex){
       ex.printStackTrace();
     }finally {
        try {
            if (stmt != null) {
                stmt.close();
                stmt = null;
            }
        } catch (SQLException ex1) {
            ex1.printStackTrace();
        }
    }
    return strArrData;
   }/*
*输出页码表格,参数(除page外的其他参数,显示样式)
*/
   public String getPageHtml(String strParam,String style){
     StringBuffer pageHtml=new StringBuffer("\n");     pageHtml.append("<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" bgcolor=\"#CCCCCC\">")
         .append("<tr><td class="+style+"><div align=\"right\">");     int startTen;//当前10页起始数
     if((curPages%10)==0)
       startTen=(curPages/10)-1;
     else
       startTen=curPages/10;     pageHtml.append("当前:"+curPages+"/"+totalPages+"页 "+pageRows+"条/页 共"+totalRows+"条 &nbsp;&nbsp;");     if(curPages==1){
       pageHtml.append("");
     }else if(curPages>10){
         pageHtml.append("<a href='?"+strPage+"=1"+strParam+"' title='首页'><font face=webdings>9</font></a> <a href='?"+strPage+"="+((startTen-1)*10+10)+strParam+"' title='上十页'><font face=webdings>7</font></a> ");
     }else{
         pageHtml.append("<a href='?"+strPage+"=1"+strParam+"' title='首页'><font face=webdings>9</font></a> ");
     }
     //---------------------------
     for(int i=(startTen*10+1);i<=(startTen*10+10);i++){
       if(i<=totalPages){
         if(i==curPages)
           pageHtml.append("<font color='#FF0000'>"+i+"</font>"+"&nbsp;");
         else
           pageHtml.append("<a href='?"+strPage+"="+i+strParam+"'>"+i+"</a> ");
       }
     }
     //----------------------------
     if(curPages>=totalPages){
       pageHtml.append("");
     }else if(curPages/pageRows==totalPages/pageRows && curPages%pageRows!=0){
       pageHtml.append("<a href='?"+strPage+"="+totalPages+strParam+"' title='尾页'><font face=webdings>:</font></a> ");
     }else{
       pageHtml.append("<a href='?"+strPage+"="+((startTen+1)*10+1)+strParam+"' title='下十页'><font face=webdings>8</font></a> <a href='?"+strPage+"="+totalPages+strParam+"' title='尾页'><font face=webdings>:</font></a> ");
     }     pageHtml.append("<script language='JavaScript'>")
         .append("function pageGo(){")
         .append("var pageid=window.document.all('pagenum').value;")
         .append("var checknum=/^\\d+$/g;")
         .append("if(!checknum.test(pageid)){")
         .append("alert('输入页码只能为正整数!');")
         .append("pageid='1';")
         .append("}else if(pageid<1 || pageid>"+totalPages+"){")
         .append("alert('输入页码超出页码范围!');")
         .append("}else if(pageid=="+curPages+"){")
         .append("alert('输入页码就是当前显示页码!');")
         .append("}else{")
         .append("window.location='?"+strPage+"='+pageid+'"+strParam+"';")
         .append("}")
         .append("}")
         .append("</script>");     pageHtml.append("<input name='pagenum' id='pagenum' type='text' value='"+curPages+"' size='3'><input type='button' name='cmdpage' value='GO' onClick='javascript:pageGo();'>");
     pageHtml.append("</div></td></tr>");
     pageHtml.append("</table>");     return pageHtml.toString();
     }
}

解决方案 »

  1.   

    我随便写了点,不知道对不对,没有测试!
    <%@ page contentType="text/html; charset=GB2312"%>
    <%@page import="com.beans.database.*"%>
    <HTML>
    <HEAD>
    <TITLE></TITLE>
    </HEAD>
    <BODY>
    <FORM METHOD=POST ACTION="" name="form1">
    <%
    try{
    String sql = "select * from tabelName";
    Page page = new Page();
    page.setPages(request,"pagenum");
    page.setPageRows(10);
    DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
    Connection con=DriverManager.getConnection("jdbc:oracle:thin:@192.168.1.1:1521:orcl","user","password");
    page.getTotalRowsPages(sql,conn);
    String[][] pages = page.getArrData(sql, con) 
    }catch (Exception e) {
    System.out.println(e.toString(););
        }
    %>
    <TABLE>
    <% for(int i = 0;i<pages.length;i++){%>
    <TR>
    <%
    String[] a = pages[i];
    %>
    <% for(int j=0;j<a.length;j++){%>
    <TD><%=a[j]%></TD>
    <%}%>
    </TR>
    <%}%>
    </TABLE>
    <%=page.getPageHtml(0,"");%>
    </FORM>
    </BODY>
    </HTML>
      

  2.   

    从servlet里调用数据库和Page bean,将值封装到ArrayList里,从页面用表达式取,我觉得这样比较简单
      

  3.   

    这句话会有错? <%=page.getPageHtml(0,"");%>
    错误如下:
    "jsp3.jsp": ')' expected
    "jsp3.jsp": illegal start of expressionlndlmy() 大哥,帮人帮到底,给调试一下,弄个好使得
      

  4.   

    package com.cabin.util;import java.util.List;
    import java.util.ArrayList;
    import java.util.Random;
    public class PageUtil {
      private java.util.List list;
      private int ipage; //当前第几页
      private int pages; //共多少页
      private int rows = 5; //每页条数,默认
      private int first; //首页
      private int prev; //前一页
      private int next; //下一页
      private int last; //最后一页
      private int counts; //总条数
      private int begin; //每页从第几条开始
      private int end; //结束于于第几条
      private String title; ///temp form fala wap  public PageUtil(int ipage, List list) {
        if (list == null || list.size() == 0) {
          return;
        }
        if (ipage <= 0) {
          ipage = 1;
        }
        this.ipage = ipage;
        setup(list);
      }  public PageUtil(int ipage, List listt, boolean random) {
        if (listt == null || listt.size() == 0) {
          return;
        }
        if (ipage <= 0) {
          ipage = 1;
        }
        this.ipage = ipage;
        setupRandom(listt);
      }  public PageUtil(int rows, int ipage, List list) {
        if (list == null || list.size() == 0) {
          return;
        }
        if (ipage <= 0) {
          ipage = 1;
        }
        if (rows >= 1) {
          this.rows = rows;
        }    this.rows = rows;
        this.ipage = ipage;
        setup(list);
      }  public java.util.List getList() {
        if (this.list == null) {
          this.list = new ArrayList();
        }
        return this.list;
      }  private void setList(java.util.List list) {
        setup(list);
      }  public int getIpage() {
        return ipage;
      }  private void setIpage(int ipage) {
        this.ipage = ipage;
      }  public int getPages() {
        return pages;
      }  private void setPages(int pages) {
        this.pages = pages;
      }  public int getRows() {
        return rows;
      }  public int getFirst() {
        return first;
      }  private void setFirst(int first) {
        this.first = first;
      }  public int getPrev() {
        return prev;
      }  private void setPrev(int prev) {
        this.prev = prev;
      }  public int getNext() {
        return next;
      }  private void setNext(int next) {
        this.next = next;
      }  public int getLast() {
        return last;
      }  private void setLast(int last) {
        this.last = last;
      }  public int getCounts() {
        return counts;
      }  private void setCounts(int counts) {
        this.counts = counts;
      }  public int getBegin() {
        return begin;
      }  private void setBegin(int begin) {
        this.begin = begin;
      }  public int getEnd() {
        return end;
      }  private void setEnd(int end) {
        this.end = end;
      }  public String getTitle() {
        return title;
      }  public void setTitle(String title) {
        this.title = title;
      }  private void setup(List list) {
        if (list == null || list.size() == 0) {
          this.list = new ArrayList();
          return;
        } //如果为空,返回
        this.counts = list.size(); //总记录数
        this.pages = (int) (counts - 1) / rows + 1; //总页数
        if (this.ipage > pages) {
          this.ipage = pages;
        }
        if (this.ipage < 0) {
          this.ipage = 1;
        }
        if (this.pages == 1) {
          this.list = list;
          this.ipage = 1;
          this.begin = 1;
          this.end = counts;
          return;
        }
        if (this.ipage == 1) {
          this.list = list.subList(0, rows);
          this.next = ipage + 1;
          this.last = pages;
          this.begin = 1;
          this.end = rows;
          return;
        }
        if (ipage == pages) {
          this.first = 1;
          this.prev = ipage - 1;
          this.begin = prev * rows + 1;
          this.end = counts;
          this.list = list.subList(begin - 1, end);
          return;
        }
        this.first = 1;
        this.prev = ipage - 1;
        this.next = ipage + 1;
        this.last = pages;    this.begin = (ipage - 1) * rows + 1;
        this.end = begin + rows - 1;
        this.list = list.subList(prev * rows, ipage * rows);
      }  public String toString() {
        StringBuffer sb = new StringBuffer();
        sb.append("共有")
            .append(counts)
            .append("记录")
            .append(" 分")
            .append(pages)
            .append("页 每页")
            .append(rows)
            .append("条记录")
            .append(" 当前第")
            .append(ipage)
            .append("页 第")
            .append(begin)
            .append("条到第")
            .append(end)
            .append("条")
            .append("首页[" + first + "]上一页[" + prev + "]下一页[" + next + "]尾页[" + last +
                    "]");    return sb.toString();
      }  public static void main(String args[]) {
        ArrayList list = new ArrayList();
        for (int i = 0; i < 20; i++) {
          list.add(new String("a#" + i));
        }
        PageUtil page = new PageUtil(3, 10, list);
        List list2 = page.getList();
        for (int i = 0; i < list2.size(); i++) {
          System.out.println( (String) list2.get(i));
        }
      }
    }
    这个改一改,看能用不.用的sybase,临时用一下,呵,