以下是我实现分页的两个类:
(1)PageBean
package com.jspdev.bean;
import java.util.Vector;
public class PageBean
{
public int curPage; //当前页面
public int maxPage; //最大页面数
public int maxRowCount; //最大的行数
public int rowsPerPage=5; //每页的行数
public Vector 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 Vector getResult()
{
return this.data;
}
public PageBean(ContactBean contact)
{
try
{
this.maxRowCount=contact.getAvailableCount();
this.data=contact.getResult();
this.countMaxPage();
}
catch(Exception e)
{
e.getMessage();
}
}
}
(2)ContactBean //用于业务的处理的
package com.jspdev.bean;
import java.util.*;
import com.jspdev.util.*;
import java.sql.*;public class ContactBean
{
private Connection con;
Vector c;
public ContactBean()
{
try
{
con=DataBaseConnection.getConnection();
c=new Vector();
}
catch(Exception e)
{
e.getMessage();
}
}
public int getAvailableCount()
{
int ret=0;
try
{
Statement stmt=con.createStatement();
String strSql="select count(*) from Treatise";
ResultSet rs=stmt.executeQuery(strSql);
while(rs.next())
{
ret=rs.getInt(1);
}
}
catch(Exception e)
{
e.getMessage();
}
return ret;
}
public PageBean listData(String page)
{ PageBean pageBean=new PageBean(this);
try
{
int pageNum=Integer.parseInt(page);
Statement stmt=con.createStatement();
String strSql="select top"+pageNum*pageBean.rowsPerPage+" * from Treatise order by Number";
ResultSet rs=stmt.executeQuery(strSql);
int i=0;
while(rs.next())
{
if(i>(pageNum-1)*pageBean.rowsPerPage-1)
{
Object[] obj=new Object[6];
obj[0]=rs.getString("Number");
obj[1]=rs.getString("Subject");
obj[2]=rs.getString("IsPutin");
obj[3]=rs.getString("IsGuidance");
obj[4]=rs.getString("Stu_no");
obj[5]=rs.getString("Teacher_no");
c.add(obj);
}
i++;
}
rs.close();
stmt.close();
pageBean.curPage=pageNum;
pageBean.data=c;
}
catch(Exception e)
{
e.getMessage();
}
return pageBean;
}
public Vector getResult()
{
return c;
}
}
但在Tomcat里运行总出现:
org.apache.jasper.JasperException
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:346)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
root cause java.lang.NullPointerException
org.apache.jsp.contact_jsp._jspService(contact_jsp.java:78)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:298)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
note The full stack trace of the root cause is available in the Apache Tomcat/5.0.25 logs.
(1)PageBean
package com.jspdev.bean;
import java.util.Vector;
public class PageBean
{
public int curPage; //当前页面
public int maxPage; //最大页面数
public int maxRowCount; //最大的行数
public int rowsPerPage=5; //每页的行数
public Vector 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 Vector getResult()
{
return this.data;
}
public PageBean(ContactBean contact)
{
try
{
this.maxRowCount=contact.getAvailableCount();
this.data=contact.getResult();
this.countMaxPage();
}
catch(Exception e)
{
e.getMessage();
}
}
}
(2)ContactBean //用于业务的处理的
package com.jspdev.bean;
import java.util.*;
import com.jspdev.util.*;
import java.sql.*;public class ContactBean
{
private Connection con;
Vector c;
public ContactBean()
{
try
{
con=DataBaseConnection.getConnection();
c=new Vector();
}
catch(Exception e)
{
e.getMessage();
}
}
public int getAvailableCount()
{
int ret=0;
try
{
Statement stmt=con.createStatement();
String strSql="select count(*) from Treatise";
ResultSet rs=stmt.executeQuery(strSql);
while(rs.next())
{
ret=rs.getInt(1);
}
}
catch(Exception e)
{
e.getMessage();
}
return ret;
}
public PageBean listData(String page)
{ PageBean pageBean=new PageBean(this);
try
{
int pageNum=Integer.parseInt(page);
Statement stmt=con.createStatement();
String strSql="select top"+pageNum*pageBean.rowsPerPage+" * from Treatise order by Number";
ResultSet rs=stmt.executeQuery(strSql);
int i=0;
while(rs.next())
{
if(i>(pageNum-1)*pageBean.rowsPerPage-1)
{
Object[] obj=new Object[6];
obj[0]=rs.getString("Number");
obj[1]=rs.getString("Subject");
obj[2]=rs.getString("IsPutin");
obj[3]=rs.getString("IsGuidance");
obj[4]=rs.getString("Stu_no");
obj[5]=rs.getString("Teacher_no");
c.add(obj);
}
i++;
}
rs.close();
stmt.close();
pageBean.curPage=pageNum;
pageBean.data=c;
}
catch(Exception e)
{
e.getMessage();
}
return pageBean;
}
public Vector getResult()
{
return c;
}
}
但在Tomcat里运行总出现:
org.apache.jasper.JasperException
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:346)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
root cause java.lang.NullPointerException
org.apache.jsp.contact_jsp._jspService(contact_jsp.java:78)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:298)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
note The full stack trace of the root cause is available in the Apache Tomcat/5.0.25 logs.
contact_jsp.java:78行附近空指针
...
...
}先判断一下rs是否为null
如jakarta-tomcat-5.0.28\work\
***_jsp.java又被编译成***_jsp.class文件再执行,也在work目录下