我在同一个标题中找到了很多问题,但没人提供帮助。
我正在尝试运行一个应该加载类的JSP页面,但是我收到了这个错误:
我看到很多问题都回答“类应该进入WEB-INF目录”,但问题是Netbeans不允许创建打包到该文件夹中。包在“源包”目录中,所以我把它放在那里。我创建了一个名为“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>
我还尝试了许多其他方法,例如编写 并删除import指令,或者在WEB-INF目录中创建一个名为“classes”的文件夹,其中包含一个名为“”的文件夹(不是包)打包“里面,但无所事事。这样做的正确方法是什么?
答案 0 :(得分:2)
首先,您应该修改usebean标记以使用完整的classname作为类属性值。因此,您应该使用Package.Student作为您的类值。顺便说一下,约定是用小写字符启动包名,所以你应该把它改成package.Student ..
然后,使用ANT甚至更好的Maven为您创建一个WAR文件。它将默认将所有类放在适当的位置,如WEB-INF / classes / Package / Student.class ...如果没有那么多时间,只需使用hirarchy {WARROOT} / WEB-INF创建WAR文件/classes/Package/Student.class ..当您的Web服务器上部署了tom,如tomcat时,您不应该得到此异常......
希望有所帮助