我在classes下放了一个bean:
import shequ.sqlBean;(链接数据库和定义查询的方法)
import java.sql.*;public class showmessage
{
public ResultSet getmessage()
{
String name,mail,message;
String sql="select * from message";
sqlBean db = new sqlBean();
ResultSet rs=  db.executeQuery(sql);
return rs;
}
}
这是在jsp中的代码:
<jsp:useBean id="show"  scope="page" class="showmessage"></jsp:useBean>
报错如下:
org.apache.jasper.JasperException: /AllMsg.jsp(2,0) The value for the useBean class attribute showmessage is invalid.
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.17 logs.
我想问下我的bean错在哪里了?

解决方案 »

  1.   


      你只是new了一个sqlBean,构造方法没有返回类型。  你没有建立连接,也就是没有Connection
      

  2.   


      不对,你如果在sqlBean中定义executeQuery这么一个方法,也是可以
        不好意思!失败
      

  3.   


      失败,LZ可能是在sqlBean定义了executeQuery这么一个方法!  不好意思
      

  4.   

    public ResultSet executeQuery(String sql)
    {
    rs=null;
    try
    {
    conn=DriverManager.getConnection(URL,user,password);
    Statement st=conn.createStatement();
    rs=st.executeQuery(sql);
    }
    catch(SQLException e)
    {
    System.out.println("执行查询有错误"+e.getMessage());
    System.out.println("执行查询有错误"+e.getMessage());
    }
    //CloseDataBase();
    return rs;
    }
    这是sqlBean的查询方法!我不很明白,在哪里加connection,谢谢!
      

  5.   

    我想通过rs的返回值,然后在jsp中读取数据库中的数据,然后在页面中显示出来!
      

  6.   


      我前面的回答是错误的!没看清楚,不好意思!  你不要这么写,在sqlBean类的构造方法中,建立与数据库的连接,返回Connection类型。然后在另一个bean中使用。   
      

  7.   

    又说错了,构造方法没有返回值!建立一个方法,用户返回Connection对象
      

  8.   

    意思是,我只在sqlBean中写链接数据的方法,然后才在jsp调用的bean中定义查询的方法,是吗?谢了!
      

  9.   

    import   shequ.sqlBean
    import   java.sql.*; public  class   showmessage 

        sqlBean db = new sqlBean();
        public   ResultSet   getmessage() 
        { 
            Connection conn = null;
            Statement st = null;
            String   name,mail,message; 
            String   sql="select * from  message"; 
            conn = db.getConn();
            st = conn.createStatement(); 
            ResultSet rs= st.executeQuery(sql);        
            return   rs; 

    public class sqlBean{
        
        public sqlBean(){
           Class.forName(“.........”); 
        }
       
        public Connection getConn() 
        { 
           try 
           { 
           conn=DriverManager.getConnection(URL,user,password); 
           } 
           catch(SQLException   e) 
           { 
             e2.printStackTrace();
           } 
        } 
    }你原来是把一个 记录集 赋 给了另一个,没用过,不知道可不可以。
    还有,不要往页面上传递ResultSet对象,可以传递一个集合。
    Connection用完之后要关掉。不然,很快,你的连接数就达到最大值!
      

  10.   

    <jsp:useBean   id="show"     scope="page"   class="shequ.sqlBean.showmessage"> </jsp:useBean>
      

  11.   

    看明白没有?class="shequ.sqlBean.showmessage
      

  12.   

    在bean类中返回ResultSet结果集rs,然后在页面中处理结果集rs不行吗?
    为什么老这样的报错呢
    org.apache.jasper.JasperException: Unable to compile class for JSPAn error occurred at line: 2 in the jsp file: /AllMsg.jsp
    Generated servlet error:
    showmessage cannot be resolved to a typeAn error occurred at line: 2 in the jsp file: /AllMsg.jsp
    Generated servlet error:
    showmessage cannot be resolved to a typeAn error occurred at line: 2 in the jsp file: /AllMsg.jsp
    Generated servlet error:
    showmessage cannot be resolved to a type
      

  13.   

    bean的规则是要有一个无参数的构造方法
    自己加个空构造方法吧另外把类名还是大写了吧,规范就是规范,要养成好习惯
      

  14.   

    import shequ.sqlBean;
    import java.sql.*;
    public class Showmessage 
    {
    //String name,mail,message;
    String sql;
        public Showmessage() 
        {
        }
        public ResultSet Message()
        {
         sql="select * from message";
         sqlBean db=new sqlBean();
         ResultSet rs=db.executeQuery(sql);
         return rs;
        }
    }
    改过的bean类,页面代码不变:
    <jsp:useBean   id="show"     scope="page"   class="showmessage"> </jsp:useBean>
    在页面添加了把抛错导到错误的页面errorpage.jsp
    在errorpage.jsp的错误是java.lang.NullPointerException 
    下面是,我想在页面处理结果集的代码。
    <%
    String name,mail,message;
    ResultSet rs=(ResultSet)request.getAttribute("rs");
    while(rs.next()){
    name=rs.getString(1);
    mail=rs.getString(2);
    message=rs.getString(3);
    %>
    <tr>
    <td><%=name%></td>
    <td><%=mail%></td>
    <td><%=message%></td>
    </tr>
    <%
    }
    %>
    大家帮我看下,麻烦了!大家给我意见我会改过的,谢谢了!
    我想知道为什么是java.lang.NullPointerException 
    难道不能在页面处理结果集吗?
      

  15.   

    <jsp:useBean       id="show"           scope="page"       class="Showmessage">   </jsp:useBean>
    Showmessage是大写的,刚才写错了!