本人在用JSP调用Javabean时出错,多方调试,classpath也多方设置,仍未能通过,恳请指教.
    本人机器环境: 
    JDK:JDK1.5  
    Tomcat:Tomcat 5.5
    
    Tomcat的安装目录,C:\Tomcat 5.5 ,JDK的安装路径:C:\Program Files\Java\jdk1.5.0_06
    机器环境classpath的设置:
    .;%JAVA_HOME\lib;%Java_Home%\lib\dt.jar;%Java_Home%\lib\tools.jar;C:\Tomcat 5.5\common\lib\msbase.jar;C:\Tomcat 5.5\common\lib\mssqlserver.jar;C:\Tomcat 5.5\common\lib\msutil.jar;%CATALINA_HOME%\common\lib\servlet-api.jar;C:\Tomcat 5.5\webapps\demo\WEB-INF\classes;C:\Tomcat 5.5\webapps\demo\WEB-INF\classes\sale
    
   
    程序发布在C:\Tomcat 5.5\webapps下面,即C:\Tomcat 5.5\webapps\demo
    此项目的结构如下:    demo
        WEB-INF
            classes
               sale    在demo下放TestBean.jsp,在sale下放goodsbean.class文件 
     TestBean.jsp文件的内容:
     <%@ page contentType="text/html;charset=GB2312"%> 
<%//request.setCharacterEncoding("iso_8859_1");%>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>goodsbean</title>
</head><body><jsp:useBean id="goodsbean" scope="request" class="sale.goodsbean" />
<%
goodsbean.setProduct("clock");
goodsbean.setPrice(17);
%>
使用方法1:
产品:<%= goodsbean.getProduct()%><br>
税率:<%= goodsbean.getPrice()%><%goodsbean.setProduct("chair");
goodsbean.setPrice(3);
%>
<br>使用方法2:
产品:<jsp:getProperty name="goodsbean" property = "Product" />
<br>
税率:<jsp:getProperty name="goodsbean" property = "Price" /></body>
</html>
bean类文件内容如下,文件名:goodsbean.java,此文件编译通过
package sale;
public class goodsbean{
    String Product;
    double Price;
    public goodsbean (){
    this.Product = "box";
    this.Price = 5.0;
    }
public void setProduct (String ProductName){
    this.Product = ProductName;

public String getProduct(){
    return (this.Product);
}
public void setPrice (double priceValue){
    this.Price = priceValue;
}
public double getPrice(){
    return (this.Price);
}
}====================
启动Tomcat以后,测试报如下错误:
HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage 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 'Product' in a bean of type 'sale.goodsbean'
org.apache.jasper.runtime.JspRuntimeLibrary.getReadMethod(JspRuntimeLibrary.java:836)
org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1012)
org.apache.jasper.compiler.Node$GetProperty.accept(Node.java:1063)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2166)
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2216)
org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2222)
org.apache.jasper.compiler.Node$Root.accept(Node.java:457)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2166)
org.apache.jasper.compiler.Generator.generate(Generator.java:3322)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:199)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:296)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:277)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:265)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:564)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:302)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.25 logs.各项文件也可参见附件,网上搜了一些例子,多方设置classpath,重起Tomcat,机器,仍然无效,始终无法解决类如:<jsp:useBean id="goodsbean" scope="request" class="sale.goodsbean" />的使用,找不到sale.goodsbean
           
    

解决方案 »

  1.   

    将你的类的属性的第一个字母小写,严格遵守javabean规范
      

  2.   

    去吧  
    String Product; 
    double Price; 
    两个属性的 首写字母小写
    并且第2个字母也不能大写着是规范
      

  3.   

    属性名第一个字母一定要小写,get,set属性中的属性名第一个字母大写,就Ok
      

  4.   

    Cannot find any information on property 'Product' in a bean of type 'sale.goodsbean' 
      

  5.   

       谢谢各位的回复,通过把bean类文件goodsbean.java里类属性的第一个字母小写,然后再把TestBean.jsp里相应的小写,调试通过.运行结果:
       
       使用方法1:产品:clock
       税率:17.0 
       使用方法2:产品:chair 
       税率:3.0 
       
       谢谢,分数送上.
      

  6.   

    同意楼上几位的说法,严格遵守javabean书写的规范