实现jsp页面得分页显示功能方案: 
com.cn.page.PageBean.java 用于控制分页的情况和数据的处理的。 
com.cn.page.PageView.java 用于在jsp页面中显示表单的。 
  
//接口的定义: 
public interface ContactBean { 
  public int getAvailableCount()throws Exception; 
  public int getAvailableCount(int id)throws Exception; 
  public PageBean listData(String page)throws Exception ; 
  public PageBean listData(String page,int id)throws Exception ; 
  public Collection getResult()throws Exception; 
} 
//pageBean的定义: 
public class PageBean { 
  public int curPage;//当前的页值。 
  public int maxPage;//最大的页数。 
  public int maxRowCount;//最大的行数。 
  public static int rowsPerPage=10; //控制分页的行数。 
  public java.util.Collection data; //所要显示的数据的集合。 
  public PageBean() { 
  } 
  public void countMaxPage(){ 
    if(this.maxRowCount%this.rowsPerPage==0){ 
      this.maxPage=this.maxRowCount/this.rowsPerPage; 
    }else{ 
      this.maxPage=this.maxRowCount/this.rowsPerPage+1; 
    } 
  } 
  public Collection getResult(){ 
    return this.data; 
  } 
  public PageBean(ContactAdapter bean,int id)throws Exception{ 
    this.maxRowCount=bean.getAvailableCount(id); 
    if(maxRowCount==0) 
      maxRowCount=1; 
    System.out.println(maxRowCount); 
    this.data=bean.getResult(); 
    this.countMaxPage(); 
  } 
  public PageBean(ContactAdapter bean)throws Exception{ 
    this.maxRowCount=bean.getAvailableCount(); 
    this.data=bean.getResult(); 
    this.countMaxPage(); 
  } 
} 
//对ContactBean接口进行adapter模式的封装。方便实用。 
public class ContactAdapter implements ContactBean{ 
  public ContactAdapter() {  } 
  public int getAvailableCount()throws Exception{ 
    return 0; 
  } 
  public int getAvailableCount(int id)throws Exception{ 
    return 0; 
  } 
  public PageBean listData(String page)throws Exception { 
    return null; 
  } 
  public PageBean listData(String page,int id)throws Exception { 
    return null; 
  } 
  public Collection getResult()throws Exception{ 
    return null; 
  } 
} 
  
  
在使用中你可以实现com.cn.interfaces.ContactBean 或继承 com.cn.interfaces.ContactAdapter都可以。 
实现方法: 
                            实现一:其中不需要键入任何参数。 
public int getAvailableCount()throws Exception; 
                              public PageBean listData(String page)throws Exception ; 
                             public Collection getResult()throws Exception; 
                            实现二:需要键入参数。 
public int getAvailableCount(int id)throws Exception; 
                             public PageBean listData(String page,int id)throws Exception ; 
public Collection getResult()throws Exception; 
例如: 
Public class TestContact extends ContactAdapter{ 
       Private Collection data; 
       Public int getAvailableCount(int unitID) throws Exception{                
              BSIResultSet rs = new DBUtil().getResult(“ 
select count(*) NUM from TableTest  where unit_id ="+id); 
              return rs.getInt(NUM); 
} 
public PageBean listData(String page,int incept_sort_id)throws Exception { 
    PageBean p = new PageBean(this,incept_sort_id); 
    int pageNum = Integer.parseInt(page); 
    BSIResultSet rs = con.getResult( 
sql, ( pageNum -1)* p.rowsPerPage,, pageNum*p.rowsPerPage  ); 
    p.curPage = pageNum; 
    p.data = this.getTestBean(rs); 
//此方法是把查询的数据封装在一个collection中。 
    return p; 
} 
public Collection getResult()throws Exception{ 
       return this.data; 
} 
} 
其中testBean是封装好的数据bean。 
如果没有参数的话。可以使用没有参数的一组接口。 
例如:在jsp中如何是用借口。 
       <jsp:useBean id="pageCtl" class="com.cn.page.PageBean" scope="request"/> 
    <%      
Vector c=(Vector)pageCtl.getResult(); 
            Iterator it=c.iterator(); 
            while(it.hasNext()){ 
                TestBean d=(TestBean)it.next();//的到每一个单独的数据。 
                //可以取出此bean的属性值。 
%> 
       。。。。。//属性使用。业务逻辑。 
       <form action="test.do" method="post" name="PageForm"> 
        <%out.print(ViewPage.getView(pageCtl));%> 
</form> 
//显示分页的表单。 
  
加入javaScript的page.js.在jsp页面上加入: 
    <script language="JavaScript" src="js/page.js">即可。 
function jumping(){ 
        document.PageForm.submit(); 
        return; 
} 
function gotoPage(Pagenum){ 
        document.PageForm.jumpPage.value=Pagenum; 
        document.PageForm.submit(); 
        return; 
}  
 
  |