我是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世界,并且工作正常。但我只是更改类并添加新字段并更改了JSP页面。有人可以帮帮我吗?
我正在使用Tomcat 7.0.14和Netbeans 7.01
答案 0 :(得分:5)
此错误基本上意味着
MyPow powerBean = new MyPow();
失败了。
bean必须具有public
构造函数。因此,更改package-private构造函数
MyPow() {
// ...
}
到公共构造函数
public MyPow() {
// ...
}
这样JSP(它本身就在不同的包中)将能够访问和调用bean的构造函数。
答案 1 :(得分:1)
您只需重启Tomcat即可。这将解决您的问题。从Tomcat根目录(Mac或Linux)中轻松实现:
$ ./bin/shutdown.sh
$ ./bin/startup.sh
在Windows中,它必须是.bat文件......
答案 2 :(得分:0)
public User() {
super();
}
添加默认构造函数后,它运行正常,没有错误