我正在使用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)而触发的。