2011-11-27 215 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(); 
} 

添加默認的構造之後,細的工作沒有錯誤

相關問題