2011-11-27 868 views
1

我是JSP中的新成员,尝试使用简单的power计算器。所以我从用户那里得到2个数字,后来我得到了计算结果并在页面上显示。这里是我的bean类:useBean类属性的值无效

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包。在我更新之前,这是一个简单的问候世界,并且工作正常。但我只是改变类并添加新的字段并更改了JSP页面。任何人都可以帮助我吗?

我使用Tomcat 7.0.14和Netbeans 7.01

回答

5

这个错误基本上意味着

MyPow powerBean = new MyPow(); 

失败。

该bean需要有一个public构造函数。因此,包私有构造

MyPow() { 
    // ... 
} 

更改为公共构造

public MyPow() { 
    // ... 
} 

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

1

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

$ ./bin/shutdown.sh

$ ./bin/startup.sh

在Windows它必须与。 BAT文件...

0
public User() { 
    super(); 
} 

添加默认的构造之后,细的工作没有错误

相关问题