0

我有一个从类目录中的包文件夹导入的 jsp 文件。当我尝试使用它时,我收到“无法编译”和“无法解析为类型”错误。这是我的代码。

<%@ page language="java" import="cs5530.*" %>
<html>
<head>
<script type="text/javascript">
function showInvalid()
{
    document.getElementById("invalid").style.display = 'block';
    document.getElementById("loginForm").reset();
}
</script>
</head>
<body>
<p>Welcome to FlixNet. Sign In</p>
<form name="loginForm" method="post" action="index.jsp">
    User Name: <input type="text" name="username"><br>
    Password: <input type="Password" name="password"><br>
    <input type="submit" value="Submit">
    <div id="invalid" style="display:none">
        <p>Invalid username or password</p>
    </div>
</form>
<%
Connector con = new Connector();
con.closeConnection();
%>
</body>
</html>

这是错误

org.apache.jasper.JasperException: Unable to compile class for JSP: 

An error occurred at line: 23 in the jsp file: /index.jsp
Connector cannot be resolved to a type
20:     </div>
21: </form>
22: <%
23: Connector con = new Connector();
24: con.closeConnection();
25: %>
26: </body>


An error occurred at line: 23 in the jsp file: /index.jsp
Connector cannot be resolved to a type
20:     </div>
21: </form>
22: <%
23: Connector con = new Connector();
24: con.closeConnection();
25: %>
26: </body>


Stacktrace:
    org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
    org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
    org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:439)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:334)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:312)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:299)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:589)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

这是我的文件结构

public_html
    index.jsp
    |WEB-INF
        |classes
             mysql.jar
            |cs5530
                Connector.java
                Connector.class
                other java and class files.

我的连接器类在包 cs5530 下,所以这不是问题。连接器类是我测试过的一个简单的数据库连接器类,它可以工作。

4

6 回答 6

1

将 jar 复制到WEB-INF/lib/目录中,然后重新启动您的 Web 容器

于 2013-07-12T16:56:33.737 回答
0

请检查是否Connector.class真的进口。看起来你还没有导入它。

于 2013-04-13T07:14:58.607 回答
0

尝试

<%@ page import="cs5530.*" %>
于 2013-04-13T07:18:34.267 回答
0

这是因为描述您尝试导入的包的 xxx.jar 文件必须直接位于 lib 文件夹中。例如:WebContent/WEB-INF/lib/xxx.jar。如果它只能在 /lib 中找到包文件夹,那么即使您的 .jar 在此包文件夹中,仍然足以创建只能解析为“包”而无法解析为“类型”的错误。

于 2014-05-28T22:35:10.713 回答
0

这是因为我没有负责我的 Tomcat 服务器。显然,如果发生重大变化,则需要对其进行清洁。我的代码一尘不染。

于 2013-04-13T07:25:58.800 回答
0

您在 .jsp 文件顶部缺少导入:

<%@ page import="packageWhatever.packageWhatever.ClassName" %>

问题的简化示例:

JSP文件:

TOMCAT_PRJ_DIR\src\main\webapp\index.jsp

错误的:

<html><body><h1> 
    <%= Main.TEST_FUNCTION() %>
</h1></body></html>

正确的:

<%@ page import="launch.Main" %>
<html><body><h1> 
    <%= Main.TEST_FUNCTION() %>
</h1></body></html>

正在导入的文件:

TOMCAT_PRJ_DIR\src\main\java\launch\Main.java

package launch;
.... imports here ....

public class Main {

    public static final String
    TEST_FUNCTION(){
        return( "[TEST_FUNCTION]" );
    };

    ...other code...   
};

使用的堆栈:Java+Tomcat+Maven

于 2018-07-09T01:13:42.547 回答