0

我正在使用 Tomcat6.0、面向 Web 开发人员的 Eclipse SDE 7.0 Express 和 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 中查看它时,我得到以下 jasper 异常:-

在 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生成:- 类文件实际上存在于生成的war文件中

4

1 回答 1

3

错误消息说明了一切,屏幕截图确认:正确的路径中不存在此类。

问题很微妙:你 import com.ems.billGen.util.DynamicCombo,类的路径是com/ems/billgen/util/DynamicCombo.class(注意包名中的大写 G 和路径名中缺少它)。

可能是某些工具的错误。该错误是由命名不遵循 Java 约定(在包名中永远不会使用大写字母)这一事实触发的。

于 2013-02-15T07:38:29.930 回答