2

同じタイトルの質問がたくさん見つかりましたが、誰も役に立ちませんでした。

クラスをロードする必要がある 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」という名前のフォルダーを作成し、その中に「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 が Tomcat などの Web サーバーにデプロイされている場合、この例外は発生しないはずです...

それが役に立てば幸い

于 2013-04-08T09:17:54.293 に答える