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

调试了一个下午,就是找不出原因来

类文件:
package test;
public class TestBean{
private String name = null;
public TestBean(String strName_p){
this.name=strName_p;
}
public void setName(String strName_p){
this.name=strName_p;
}
public String getName(){
return this.name;
}
}

jsp文件:
<html><body>
<jsp:useBean id="HW" scope="request" class="test.TestBean"/>
<center>
<%
HW.setName("Hello World.");
%>
Java bean name is: <%=HW.getName()%>
</center></body></html>

这是我编写的一个调试JAVABEAN的程序,我已经把类文件编译后生成的class文件放到../WEB-INF/test/TestBean.class里面了,环境变量又已经设定正确了,
如果用
<%@ page import="test.TestBean" %>
<html><body><center>
<%
TestBean testBean=new TestBean("This is a test java bean.");
%>
Java bean name is: <%=testBean.getName()%>
</center></body></html>

来调试就能正确显示,但用上面的<jsp:useBean>就不行,唉,不知哪里出了问题,显示的错误是这样:

HTTP Status 500 -

--------------------------------------------------------------------------------

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: /TestBean.jsp(3,0) The value for the useBean class attribute test.TestBean is invalid.
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


root cause

org.apache.jasper.JasperException: /TestBean.jsp(3,0) The value for the useBean class attribute test.TestBean is invalid.
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:39)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:405)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:146)
org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1174)
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:3304)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:198)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:295)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:276)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:264)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:563)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:303)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


note The full stack trace of the root cause is available in the Apache Tomcat/5.5.15 logs.

到底哪里出错了呢?请各位指点一下,感谢~~~~

搜索更多相关主题的帖子: request private package public return 
2006-08-11 17:39
janvy81
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2006-5-29
收藏
得分:0 

谁能指点一下,我又搞了一个下午,头都大了感激啊~~~~~

2006-08-14 16:41
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 

<%
HW.setName("Hello World.");
%>

这句替换成
<jsp:setProperty name="HW" property="name" value="vlinux"/>

<%=HW.getName()%>
替换成
<jsp:getProperty name="HW" property="name"/>


淘宝杜琨
2006-08-14 18:24
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
应该不是替换的问题
而是你的TestBean这个类,是不是定义了默认的构造函数
我看到你初始化的时候是用字符串做为参数来初始化的
其实可以用<jsp:useBean>的地方都可以直接用JAVA语句来实现

可惜不是你,陪我到最后
2006-08-14 19:00
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 
哦,是不是TestBean应该有
public TestBean(){}
构造函数?

淘宝杜琨
2006-08-14 21:04
janvy81
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2006-5-29
收藏
得分:0 

感谢楼上两位版主,我解决问题了,原来TestBean类真的要有一个不带参数的默认的构造函数,把JAVA程序改成这样就能通过了:
package test;
public class TestBean{
private String name;
public TestBean(){
this.name="";
}
public void setName(String strName_p){
this.name=strName_p;
}
public String getName(){
return this.name;
}
}
谢谢两位热心的帮助,我爱bc-cn~~~~~~~~~~~~~

2006-08-15 09:20
快速回复:的问题
数据加载中...
 
   



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

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