我发现了很多与我的标题相同的问题,但没有人提供帮助。
我正在尝试运行一个应该加载类的 JSP 页面,但出现此错误:
我看到很多问题的答案都是“类应该放在 WEB-INF 目录中”,但问题是 Netbeans 不允许创建打包到该文件夹中。包位于“Source Packages”目录中,所以我把它放在那里。我创建了一个名为“Package”的包,其中包含一个“Student”类:
package Package;
import java.beans.*;
import java.io.Serializable;
/**
*
* @author ramy
*/
public class Student implements Serializable {
public static final String PROP_SAMPLE_PROPERTY = "sampleProperty";
private String sampleProperty;
private PropertyChangeSupport propertySupport;
public Student() {
propertySupport = new PropertyChangeSupport(this);
}
public String getSampleProperty() {
return sampleProperty;
}
public void setSampleProperty(String value) {
String oldValue = sampleProperty;
sampleProperty = value;
propertySupport.firePropertyChange(PROP_SAMPLE_PROPERTY, oldValue, sampleProperty);
}
public void addPropertyChangeListener(PropertyChangeListener listener) {
propertySupport.addPropertyChangeListener(listener);
}
public void removePropertyChangeListener(PropertyChangeListener listener) {
propertySupport.removePropertyChangeListener(listener);
}
}
这是 JSP:
<%@page import="Package.Student" %>
<%@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>
<jsp:useBean id="student" class="Student" />
</body>
</html>
我还尝试了许多其他方法,例如编写 并删除导入指令,或者在 WEB-INF 目录中创建一个名为“classes”的文件夹,其中包含一个名为“包”在里面,但没什么可做的。这样做的正确方法是什么?
最佳答案
首先,您应该修改 usebean 标记以使用完整的类名作为类属性值。因此,您应该使用 Package.Student 作为您的类(class)值。顺便说一句,约定是包名称以小写字符开头,因此您应该将其更改为 package.Student..
然后,使用 ANT 甚至更好的 Maven 为您创建一个 WAR 文件。默认情况下,它会将您的所有类放在适当的位置,例如 WEB-INF/classes/Package/Student.class...如果您没有那么多时间,只需创建层次结构为 {WARROOT}/WEB-INF 的 WAR 文件/classes/Package/Student.class .. 当你的 WAR 部署在 web 服务器(比如 tomcat)上时,你不应该得到这个异常...
希望对你有帮助
关于java - useBean 类 Student 的值无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15875055/