我正在使用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上时,我意识到它得到了很好的认可,因为我获得了该类的正确文档。请查看下面的屏幕截图:


现在,当我部署以上页面并在firefox中查看它时,我收到以下碧玉异常:-

jsp文件:/implementation.jsp中的第36行发生错误

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生成相应的类文件,如下所示:

最佳答案

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

问题很细微:导入com.ems.billGen.util.DynamicCombo,并且类的路径为com/ems/billgen/util/DynamicCombo.class(请注意,程序包名称中的大写字母G和路径名称中缺少大写字母G)。

可能是某些工具的错误。该错误是由于命名不遵循Java约定(never to use capital letters in package names)而触发的。

10-08 20:13