| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1355 人关注过本帖
标题:调用javabean问题
只看楼主 加入收藏
wolfcool
Rank: 1
等 级:新手上路
帖 子:102
专家分:0
注 册:2006-12-9
收藏
 问题点数:0 回复次数:15 
调用javabean问题

<%@ page contentType="text/html;charset=gb2312"%>

<%@ page import="java.sql.*"%>
<jsp:useBean id="conn" scope="page" class="clj.DataBaseCon"/>
<%
Result rs=conn.executeQuery("select* from maxclass");
while(rs.next()){
out.print(rs.getString("classname"));
out.print("<br>");
}

%>
我是这样调用的,DataBaseCon,放在webapps\ROOT\WEB-INF\classes下,怎么会无效呢?!org.apache.jasper.JasperException: /testbean.jsp(4,0) The value for the useBean class attribute clj.DataBaseCon is invalid.
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:39)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:409)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:150)
org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1227)
org.apache.jasper.compiler.Node$UseBean.accept(Node.java:1116)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163)
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2213)
org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2219)
org.apache.jasper.compiler.Node$Root.accept(Node.java:456)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163)
org.apache.jasper.compiler.Generator.generate(Generator.java:3272)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:244)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:495)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:476)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:464)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:295)
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:802)

搜索更多相关主题的帖子: javabean 
2007-05-24 13:07
angeloc
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:36
帖 子:1353
专家分:0
注 册:2006-11-21
收藏
得分:0 
为什么放在ROOT下,你的应用是在ROOT下么?

老牛明知夕阳晚,不用扬鞭自奋蹄; Angelo\'s BLOG
2007-05-24 13:26
angeloc
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:36
帖 子:1353
专家分:0
注 册:2006-11-21
收藏
得分:0 
而且像你这样写代码,也没必要用USEBEAN了,直接把代码写页面里实例化JAVABEAN,这样不伦不类

老牛明知夕阳晚,不用扬鞭自奋蹄; Angelo\'s BLOG
2007-05-24 13:28
wolfcool
Rank: 1
等 级:新手上路
帖 子:102
专家分:0
注 册:2006-12-9
收藏
得分:0 
我刚学,不知道,那要怎么写才是有伦有类呢?:)
这个我也是看书上写的
2007-05-24 13:38
wolfcool
Rank: 1
等 级:新手上路
帖 子:102
专家分:0
注 册:2006-12-9
收藏
得分:0 
我的页面是放在root下的
2007-05-24 13:40
angeloc
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:36
帖 子:1353
专家分:0
注 册:2006-11-21
收藏
得分:0 

用JSP:USEBEAN无非是为了是代码简洁.
如果你上面用USEBEAN,下面<%.....省略代码无数 %>,那么还不如所有代码都写道<%...%>里面,没必要用USEBEAN了!

你这个问题可能是
1. 在编译 JSP 时(不是运行时),指定的 Bean 类没找到
2. Bean 虽然找到了,但是它不是 public 的
3. Bean 类中没有 public 的默认构建函数
4. 没有PACKAGE


老牛明知夕阳晚,不用扬鞭自奋蹄; Angelo\'s BLOG
2007-05-24 13:54
wolfcool
Rank: 1
等 级:新手上路
帖 子:102
专家分:0
注 册:2006-12-9
收藏
得分:0 

那我在每个页面中至少不要都写那个数据库连接代码啊:)
不是很明白你的意思,包文件是这样写的
package clj;
import java.sql.*;
public class DataBaseCon
{
Connection con=null;
Statement sql=null;
ResultSet rs =null;
int rows=0;
public DataBaseCon()//在JSP中调用这个Bean时自动加载连接
{
try
{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");//加载sqlserver驱动
Connection con = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=shop","sa","");//建立连接
/*
**其中
**172.16.0.8中数据库所在机器的IP
**clj2 是数据库名称
**sa 为数据库管理员名
**clj为数据库管理员密码
**其它内容不变
*/
sql=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);//建立SQL语句对象
}
catch(Exception e)
{
System.out.println("连接database错误:"+e);
}
}
public ResultSet mySelect(String myselect)//改写executeQuery(String sql)方法
{
try
{
rs = sql.executeQuery(myselect);
}
catch(Exception e)
{
System.out.println("查询错误:"+e);
}
return rs;
}
public int myUpdate(String myupdate)//改写executeUpdate(String sql)方法
{
try
{
rows=sql.executeUpdate(myupdate);
}
catch(Exception e)
{
e.getMessage();
}
return rows;
}
public void close()//建立关闭组方法
{
if(rs!=null)
try
{
rs.close();
}
catch(Exception e)
{
System.out.println("关闭结果集错误"+e);
}
if(sql!=null)
try
{
sql.close();
}
catch(Exception e)
{
System.out.println("关闭建立查询句错误:"+e);
}
if(con!=null)
try
{
con.close();
}
catch(Exception e)
{
System.out.println("关闭连接错误:"+e);
}
}

}


2007-05-24 14:00
wolfcool
Rank: 1
等 级:新手上路
帖 子:102
专家分:0
注 册:2006-12-9
收藏
得分:0 
要不你给我个好点的代码
2007-05-24 14:02
angeloc
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:36
帖 子:1353
专家分:0
注 册:2006-11-21
收藏
得分:0 

你的CLASS文件放在哪里了?


老牛明知夕阳晚,不用扬鞭自奋蹄; Angelo\'s BLOG
2007-05-24 14:10
wolfcool
Rank: 1
等 级:新手上路
帖 子:102
专家分:0
注 册:2006-12-9
收藏
得分:0 
刚借书去了
放在D:\Tomcat 5.0\webapps\ROOT\WEB-INF\classes
2007-05-24 15:45
快速回复:调用javabean问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.037910 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved