jsp:useBean的问题送分啊,兄弟姐妹门COME ON

binghe7 2003-11-28 02:10:08
其中.java文件如下:
package test;
public class HelloWorld
{
String Hello="hello world,i am glacier!";
public void HelloWorld()
{
}
public void setHello(String name)
{
Hello=name;
}
public String getHello()
{
return Hello;
}
}
jsp文件如下
<jsp:useBean id="hello" scope="page" class="test.HelloWorld"/>
<jsp:getProperty name="hello" property="Hello"/>
<br>
<%hello.setHello(Are you want to talk to me?");
%>
<%=hello.getHello()%>
报错如下:
org.apache.jasper.JasperException: Cannot find any information on property 'Hello' in a bean of type 'test.HelloWorld'
at org.apache.jasper.runtime.JspRuntimeLibrary.getReadMethod(JspRuntimeLibrary.java:702)
at org.apache.jasper.compiler.GetPropertyGenerator.generate(GetPropertyGenerator.java:104)
at org.apache.jasper.compiler.JspParseEventListener$GeneratorWrapper.generate(JspParseEventListener.java:841)
at org.apache.jasper.compiler.JspParseEventListener.generateAll(JspParseEventListener.java:253)
at org.apache.jasper.compiler.JspParseEventListener.endPageProcessing(JspParseEventListener.java:209)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:215)
at org.apache.jasper.servlet.JspServlet.loadJSP(JspServlet.java:548)
at org.apache.jasper.servlet.JspServlet$JspServletWrapper.loadIfNecessary(JspServlet.java:176)
at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:188)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:381)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:473)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:475)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2347)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1027)
at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1125)
at java.lang.Thread.run(Thread.java:536)



--------------------------------------------------------------------------------
...全文
31 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
binghe7 2003-11-29
  • 打赏
  • 举报
回复
thank you very much
终于有点明白javaBean啦,谢谢 junyi2003(超级菜鸟)
weichenggao 2003-11-28
  • 打赏
  • 举报
回复
楼上的测试,运行OK,楼主好好的看看!
slimsymphony 2003-11-28
  • 打赏
  • 举报
回复
这里就有个问题
jsp中的bean 和j2se中的bean有什么区别
恐怕不太一样吧!!
junyi2003 2003-11-28
  • 打赏
  • 举报
回复
看来你是没有理解。
javaBean要符合很多规范的,其中变量/类的取名和set/get方法的配套都是有规则的。具体你要看javaBean的手册

我来拿你的东西,做个范例吧!
package test;
public class HelloWorld
{
private String hello = "hello world,i am glacier!";

public void HelloWorld(){}

//方法的名字set/get +变量名(首字母从小写转换为大写)
public void setHello(String name){
hello = name;
}
public String getHello(){
return hello;
}
}
//编译成功后
jsp文件如下
<jsp:useBean id="myTest" scope="page" class="test.HelloWorld"/>
<jsp:getProperty name="myTest" property="hello"/>
<br>
<%
myTest.setHello("Are you want to talk to me?");
%>
<%=myTest.getHello()%>

binghe7 2003-11-28
  • 打赏
  • 举报
回复
我觉得问题出在.java文件中的Hello吧
org.apache.jasper.JasperException: Cannot find any information on property 'Hello' in a bean of type 'test.HelloWorld'

当我把setHello,getHello,以及.jsp文件中的property="Hello"全部改为用aaa替代时,错误信息变为
org.apache.jasper.JasperException: Cannot find any information on property 'aaa' in a bean of type 'test.HelloWorld'

为什么说在test.HelloWorld中找不到HelloWorld这个属性呢????
binghe7 2003-11-28
  • 打赏
  • 举报
回复
to:超级菜鸟 我的JavaBean组件对象的属性名是Hello啊,应该property=Hello吧,上面的java程序调式通过,应该不存在语法问题

to:weichenggao(高纪),那个引号是我疏忽拉,现在加上拉,错误依旧
to: xchfriend(xchfriend),我不明白你如果把useBean和getProperty的name设置不一样,那怎么取它的属性啊??晕
xchfriend 2003-11-28
  • 打赏
  • 举报
回复
第一:<jsp:getProperty name="hello" property="Hello"/>应该改成:
<jsp:getProperty name="Hello" property="Hello"/>

第二:要设置你的web-inf中的web.xml,添加如下几句:
<servlet>
<servlet-name>HelloWorld</servlet-name>
<servlet-class>test.HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorld</servlet-name>
<url-pattern>/HelloWorld</url-pattern>
</servlet-mapping>
重启TOMCAT服务器,即可!
weichenggao 2003-11-28
  • 打赏
  • 举报
回复
编译通过的JAVA文件:

public class HelloWorld
{
String hello="hello world,i am glacier!";
public void HelloWorld()
{
}
public void setHello(String name)
{
hello=name;
}
public String getHello()
{
return hello;
}
}
aku0708 2003-11-28
  • 打赏
  • 举报
回复
up
Leemaasn 2003-11-28
  • 打赏
  • 举报
回复
要符合javabean的规范,
注意大小写
learnner 2003-11-28
  • 打赏
  • 举报
回复
<%hello.setHello(Are you want to talk to me?");
%>

===>

<%hello.setHello("Are you want to talk to me?");
%>
weichenggao 2003-11-28
  • 打赏
  • 举报
回复
<%hello.setHello(Are you want to talk to me?");
这句就有问题,你看看怎么没有前引号呢?
junyi2003 2003-11-28
  • 打赏
  • 举报
回复
String hello="hello world,i am glacier!";
//要符合规范的,变量开头小写
junyi2003 2003-11-28
  • 打赏
  • 举报
回复
property="hello"

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧