大家帮我看看为何Bean不能正常运行

my3b 2003-08-24 10:50:42
源码如下:
package hainan;
public class CountBean
{
int count;
public CountBean()
{count=0;}
public int getCount()
{
count ++;
return count;
}
public void setCount(int num)
{
count=num;
}
}
编译成功后我将class文件放在hainan目录中(这样完整的路径就是c:\jsp\WEB-INF\classes\hainan,我已将c:\jsp设为虚拟目录了),放在c:\jsp根目录下的jsp文件源码如下:
<html>
<head>
<title>计数器</title>
</head>
<body>
<jsp:useBean id="coun" scope="session" class="hainan.CountBean"/>
<%coun.setCount(100);%>
您是第
<jsp:getProperty name="coun" property="Count"/>位访问者!
</body>
</html>
但运行时出现如下错误:
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: Cannot find any information on property 'Count' in a bean of type 'hainan.CountBean'
org.apache.jasper.runtime.JspRuntimeLibrary.getReadMethod(JspRuntimeLibrary.java:885)
org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:967)
org.apache.jasper.compiler.Node$GetProperty.accept(Node.java:1065)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2142)
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2184)
org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2190)
org.apache.jasper.compiler.Node$Root.accept(Node.java:471)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2142)
org.apache.jasper.compiler.Generator.generate(Generator.java:2932)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:286)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:453)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:439)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:555)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:300)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:293)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:240)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)


note The full stack trace of the root cause is available in the Tomcat logs.
这是提示什么呢?大家给指点一下好吗?是我放置class的位置不对吗?我觉得我放的应该没错啊!不明白哪里出错。
...全文
58 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wbel 2003-08-24
  • 打赏
  • 举报
回复
<html>
<head>
<title>计数器</title>
</head>
<body>
<jsp:useBean id="coun" scope="session" class="hainan.CountBean"/>

//这里应该用<jsp:setProperty 而不是<%coun.setCount(100);%>

<jsp:setProperty name="coun" property="count" value="100" />
您是第
<jsp:getProperty name="coun" property="count"/>位访问者! 这里count应该小写
</body>
</html>
my3b 2003-08-24
  • 打赏
  • 举报
回复
多谢沙漠孤鹰的指点,现在运行正常了,但有几点我不明白,还望指教。
1.int count只是声明了变量,但整个代码中并没有设定属性值,这property="count"是指定Bean的属性名,但这个属性名就是变量名吗?我的理解对吗?我觉得不对。
2.这<% coun.setCount(100); %>是什么作用呢?我的理解是定义初始值的作用,我将100改为0,那运行时就是您是第1位访问者了,这<% coun.setCount(100); %>的作用还是理解不深,能再详细指点一下吗?是不是非要用这个,不用可以的吗?
3.运行jsp文件时速度非常的慢,不知别人读取调用javaBean的jsp文件时都是这么慢的吗?足足读了二分钟,硬盘狂读不止,虽说第一次运行class文件慢点,但也不至于这么慢吧,我这速度正常吗?
还请指点一二好吗?谢谢。
zcjl 2003-08-24
  • 打赏
  • 举报
回复
<%coun.setCount(100);%>
已经做了
my3b 2003-08-24
  • 打赏
  • 举报
回复
我的理解如下:
本来设置Bean的属性值是由setProperty动作来完成的,但代码中并没有setProPerty动作,就
如同jncz所说的代码中并没有这个属性,那是不是还要写个<jsp:setProperty>啊,不知我的理解对不对?
seaman0916 2003-08-24
  • 打赏
  • 举报
回复
你在Javabean 时定义 int count;
而你引用:
<jsp:getProperty name="coun" property="Count"/>

应该为:<jsp:getProperty name="coun" property="count"/>


^_^ ,试试吧!
my3b 2003-08-24
  • 打赏
  • 举报
回复
能详细写一下代码吗?我再看看,我刚学,很多地方都不懂,你写个示例代码让我看看,我再提问好吗?谢谢了。
jncz 2003-08-24
  • 打赏
  • 举报
回复
在这里不能使用<jsp:getProperty name="coun" property="Count"/>count本身你叶面上就没有这个属性
因为你并未把叶面上原有的任何数据放入bean中,而是你自己赋的值。所以

我觉得应该用getCount()取出值
getCount()返回一个int型的值。

81,092

社区成员

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

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