【问题标题】:The value for the useBean class attribute is invalid [duplicate]useBean 类属性的值无效 [重复]
【发布时间】:2011-11-27 16:28:58
【问题描述】:

我是 JSP 的新手,正在尝试简单的功率计算器。所以我从用户那里取了 2 个数字,然后我得到了计算结果并显示在页面上。这是我的 bean 类:

package org.mypackage.power;

public class MyPow {

    private double base;
    private double pow;
    private double result;

    MyPow()
    {
        base = 0;
        pow=1;
    }

    /**
     * @return the base
     */
    public double getBase() {
        return base;
    }

    /**
     * @param base the base to set
     */
    public void setBase(double base) {
        this.base = base;
    }

    /**
     * @return the pow
     */
    public double getPow() {
        return pow;
    }

    /**
     * @param pow the pow to set
     */
    public void setPow(double pow) {
        this.pow = pow;
    }


    /**
     * @return the result
     */
    public double getResult() {
       return Math.pow(base, pow);
    }

    /**
     * @param result the result to set
     */
    public void setResult(double result) {
        this.result = result;
    }
}

这里是索引页:

<HTML>
<BODY>
<FORM METHOD=POST ACTION="result.jsp">
What's your base? <INPUT TYPE=TEXT NAME=base SIZE=20>
What is your power <INPUT TYPE=TEXT NAME=power SIZE=10>

<P><INPUT TYPE=SUBMIT>
</FORM>
</BODY>
</HTML>

这里是显示结果的 JSP 页面

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <h1>Hello World!</h1>
        <jsp:useBean id="powerBean" scope="session" class="org.mypackage.power.MyPow" />
        <jsp:setProperty name="powerBean" property="*"/>
        <jsp:getProperty name="powerBean" property="result"/>
    </body>
</html>

这段代码给出了

useBean 类属性的值无效

我的班级在the org.mypackage.power.MyPow 包下。在我更新它之前,它是一个简单的 hello world 并且工作正常。但我只是更改类并添加新字段并更改 JSP 页面。有人可以帮我吗?

我正在使用 Tomcat 7.0.14 和 Netbeans 7.01

【问题讨论】:

    标签: forms jsp javabeans


    【解决方案1】:

    这个错误基本上意味着

    MyPow powerBean = new MyPow();
    

    失败了。

    bean 需要有一个public 构造函数。所以,改变包私有构造函数

    MyPow() {
        // ...
    }
    

    到公共构造函数

    public MyPow() {
        // ...
    }
    

    这样 JSP(它本身在不同的包中)将能够访问和调用 bean 的构造函数。

    【讨论】:

      【解决方案2】:

      您只需要重新启动 Tomcat。这将解决您的问题。最简单的方法,从您的 Tomcat 根目录(Mac 或 Linux):

      $ ./bin/shutdown.sh

      $ ./bin/startup.sh

      在 Windows 中,它必须带有 .bat 文件...

      【讨论】:

        【解决方案3】:
        public User() {
            super();
        }
        

        添加默认构造函数后,它工作正常,没有错误

        【讨论】:

          猜你喜欢
          • 2010-10-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-04-21
          • 2013-11-04
          相关资源
          最近更新 更多