我在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错在哪里了?
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错在哪里了?
解决方案 »
- 黑盒测试?什么测试?
- try catch的问题?
- plugin动作元素的问题!!
- 验证码图片无法显示,高手过来看看,谢谢了
- jsp+struts jsp页面中怎么得到数据源信息?
- 经过努力,终于发现在linux下,自动生成缩略图,预览图,压缩图的办法,哈哈,一起共享!(jsp源代码,源程序-能加精吗?)
- 数据库连接池问题:我设置了大连接池数为4,但执行了3次后,便死机,请大家帮忙看看还有哪里没有释放。
- 请问如何获得数据库中某个表的主键?
- 怎樣吧tomcat作為2000系統的service啟動
- 请问jsp中的javabeans和ejb中的javabean有什么区别?还有就是jsp中什么时候用javabeans呀?请指教
- hibernate 怎么根据一个表的其他字段决定与哪个表一对多
- 用hibernate往数据库save记录抛出异常,不知是什么原因,各位帮看看,找了很久了
你只是new了一个sqlBean,构造方法没有返回类型。 你没有建立连接,也就是没有Connection
不对,你如果在sqlBean中定义executeQuery这么一个方法,也是可以
不好意思!失败
失败,LZ可能是在sqlBean定义了executeQuery这么一个方法! 不好意思
{
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,谢谢!
我前面的回答是错误的!没看清楚,不好意思! 你不要这么写,在sqlBean类的构造方法中,建立与数据库的连接,返回Connection类型。然后在另一个bean中使用。
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用完之后要关掉。不然,很快,你的连接数就达到最大值!
为什么老这样的报错呢
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
自己加个空构造方法吧另外把类名还是大写了吧,规范就是规范,要养成好习惯
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
难道不能在页面处理结果集吗?
Showmessage是大写的,刚才写错了!