(我已经阅读了关于这个主题的其他问题,但没有一个有帮助)
好的,我正在尝试将Java类导入到我的JSP文件中,但是Tomcat给了我错误:
org.apache.jasper.JasperException:无法为JSP编译类:
An error occurred at line: [16] in the generated java file: [I:\path\to\index_jsp.java] Only a type can be imported. org.runas.XKCDUtils resolves to a package An error occurred at line: 7 in the jsp file: /index.jsp XKCDUtils cannot be resolved
4: String data = null;
5: int finalComic = 1;
6: int comicNo = 1;
7: finalComic = XKCDUtils.getFinalComic();
8:
9: if (request.getParameter("page") != null)
10: comicNo = Integer.parseInt(request.getParameter("page"));
我的JSP文件中的import语句是:
<%@page import="java.io.*, java.net.*, org.runas.XKCDUtils" %>
我的目录结构的相关部分是:
webapps
`-ROOT
`-index.jsp
|-WEB-INF
`-web.xml
|-classes
`-org
`-runas
`-XKCDUtils.class
我很困惑,因为org.runas.XKCDUtils resolves to a package
,但它显然是一个类文件,我认为是正确的目录。
请帮助!
(并且不要责怪我使用scriptlet,我正在尝试清理它们!)
答案 0 :(得分:7)
好的,这很奇怪。 我将导入分成三个导入,
<%@page import="java.io.*" %>
<%@page import="java.net.*" %>
<%@page import="org.runas.XKCDUtils" %>
它神奇地决定工作。然后当我更改导入时,
<%@page import="java.io.*, java.net.*, org.runas.XKCDUtils" %>
它神奇地决定继续工作。
也许它与重启Tomcat有关?嗯,无论如何它现在都有效。
答案 1 :(得分:3)
我有同样的问题;通过停止服务器(在我的情况下为Tomcat)并重建项目来解决。
答案 2 :(得分:2)
我不知道究竟是什么导致了错误,但我改变了
<%@page import="java.io.*, java.net.*, org.runas.XKCDUtils" %>
到
<%@page import="java.io.*, java.net.*, org.runas.*" %>
它有效。我对错误的解释是,由于某种原因,Tomcat认为XKCDUtils是一个包,而不是包中的类。使用*导入然后明确表示它正在导入类。