0

Tomcat6.0、Eclipse SDE 7.0 Express for Web Developers、および jdk1.6 を使用しています。

私のjspページには、次のようなコードがあります

<%
List<String> options = new ArrayList<String>();
DynamicCombo comboBox = new DynamicCombo();
options = comboBox.generateComboBox();
Collections.sort(options);
int tempVar = 0;
while (tempVar < options.size()) {
out.print("<option value=\"");
out.print(options.get(tempVar));
out.print("\">");
out.print(options.get(tempVar));
out.print("</option>");
tempVar++;
}
%>

DynamicCombo はパッケージ com.ems.billGen.util 内のクラスであり、このパッケージを次のように jsp に適切にインポートしています:-

<%@page import="com.ems.billGen.util.*" %>

このクラス DynamicCombo には、単純に文字列のリストを作成してこの文字列を返す、generateComboBox() という名前のメソッドがあります。

上記の jsp でクラス DynamicCombo にカーソルを合わせると、クラスの適切なドキュメントを取得できるため、よく認識されていることがわかります。以下のスクリーンショットをご覧ください:- jsp ファイルのクラス名にカーソルを合わせると

上記のページをデプロイしてFirefoxで表示すると、次のジャスパー例外が発生します:-

jsp ファイルの 36 行目でエラーが発生しました: /implementation.jsp

DynamicCombo cannot be resolved to a type
33:     <td><select name="product_list">
34:         <%
35:             List<String> options = new ArrayList<String>();
36:             DynamicCombo co = new DynamicCombo();
37:             options = co.generateComboBox();
38:             Collections.sort(options);
39:             int tempVar = 0;

その理由と、この問題を解決する方法を理解できません。どんな入力でも大歓迎です。

それぞれのクラス ファイルも、war ファイルの web-inf フォルダーにある DynamicCombo 用に次のように生成されます。 class ファイルは、生成された war ファイルに実際に存在します

4

1 に答える 1

3

エラー メッセージがすべてを示しており、スクリーンショットで確認できます。そのようなクラスは正しいパスに存在しません。

問題は微妙です: import com.ems.billGen.util.DynamicCombo、クラスへのパスはcom/ems/billgen/util/DynamicCombo.class(パッケージ名に大文字の G があり、パス名に G がないことに注意してください)。

おそらく何らかのツールのエラーです。このエラーは、命名が Java の規則 (パッケージ名に大文字を使用することは決してない) に従っていないという事実によって引き起こされました。

于 2013-02-15T07:38:29.930 に答える