2

我发现了很多与我的标题相同的问题,但没有一个有用。

我正在尝试运行应加载类的 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>

我也尝试了很多其他的方式,比如写作并删除导入指令,或在 WEB-INF 目录中创建一个名为“classes”的文件夹,其中包含一个名为“Package”的文件夹(不是包),但无事可做。这样做的正确方法是什么?

4

1 回答 1

2

首先,您应该修改 usebean 标记以使用完整的类名作为类属性值。因此,您应该使用 Package.Student 作为您的班级价值。顺便说一句,约定是以小写字符开头的包名称,因此您应该将其更改为 package.Student..

然后,使用 ANT 甚至更好的 Maven 为您创建一个 WAR 文件。默认情况下,它会将您的所有课程放在适当的位置,例如 WEB-INF/classes/Package/Student.class ... 如果您没有那么多时间,只需使用层次结构 {WARROOT}/WEB-INF 创建 WAR 文件/classes/Package/Student.class .. 当你的 WAR 部署在 web 服务器上时说 tomcat,你不应该得到这个异常......

希望能帮助到你

于 2013-04-08T09:17:54.293 回答