Java &引用;“无法解决导入问题”;使用JSP

Java &引用;“无法解决导入问题”;使用JSP,java,class,jsp,import,jdeveloper,Java,Class,Jsp,Import,Jdeveloper,我试图从JSP页面调用Java类。我已经使用JDeveloper创建了这个项目 我收到一个错误,上面写着“导入无法解决”。我已经在WEB-INF根文件夹中添加了类文件,并尝试编译,但仍然显示相同的错误 代码如下: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"/> </head> &

我试图从JSP页面调用Java类。我已经使用JDeveloper创建了这个项目

我收到一个错误,上面写着“导入无法解决”。我已经在WEB-INF根文件夹中添加了类文件,并尝试编译,但仍然显示相同的错误

代码如下:

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"/>
    </head>
    <body>
        <p>  
            <%@ page import="java.util.*"%>
            <%@ page import="Class1"%>
            <% 
                Class1 tc=new Class1("test");
                out.print(tc.str);
            %>
        </p>
    </body>
</html>



页面指令通常放在JSP的顶部。我还假设
Class1
在默认包中,因为它没有完全限定的名称。如果
Class1
在包中,则需要在导入中用包名作为名称的前缀

<%@ page import="java.util.*" %>
<%@ page import="Class1" %>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"/>
</head>
<body>
    <p>
<%
Class1 tc=new Class1("test");
out.print(tc.str);
  %>
    </p>
</body>



您应该为您的类提供完全限定的名称。(packagename.classname) 比如:


首先,
/WEB-INF/src
是存放java源代码的错误位置(因为
WEB-INF
文件夹内容已部署到服务器);您应该希望将它们移出
/WEB-INF
(例如,放入项目根目录中的/src)

无论哪种方式,您都需要告诉Eclipse您的源代码在哪里,以及您希望将类构建到哪里。这是在“项目属性”对话框中完成的:

  • 右键单击Eclipse中的项目,选择Properties

  • 单击左侧的Java构建路径

  • 单击右侧的源选项卡

  • 单击添加文件夹按钮并添加源文件夹(/WEB-INF/src或您将其移动到的任何位置)

  • 确保选中下面的“允许源文件夹的输出文件夹”

  • 在“新添加的源路径”下,选择“输出文件夹”,并将其指向/WEB-INF/classes或您选择的其他位置


  • 您不应该重复像
    这样的指令标记。但是您可以重复导入属性值本身中的值,如

    确保输入完全限定的名称

    我认为在正文中声明它们并不重要tag@GanGnaMStYleOverFlowErroR这更像是一个风格或最佳实践建议。@km是的,这是一个很好的实践,但不会解决编译器错误,是吗?@GangnamStyleOverflowerr同意。我还对类是否打包感兴趣。我曾经与Jdeveloper一起工作,我觉得任何使用该“工具”的人都是如此。@km我们可以从他的JSp中看到,这可能是唯一可能的情况。该类没有打包。是否需要打包?@user1884132是的,您必须打包类的。这是一个坏的做法,如果不包他们。检查此链接的更多细节,我有一个类似的错误,使我来到这里。这导致JSP运行时无法解析CompanyDAO。我重复了这句话,并将*替换为CompanyDAO,如下所示:。令我大吃一惊的是,这个问题终于解决了。是的,花点时间将所有代码放入包中。我不太喜欢“CodeRanch”。我在Eclipse中通过将我造成的混乱转化为Eclipse想要的Web应用程序包来解决包的问题。
        <%@ page import="pkgname.Class1"%>