【问题标题】:how to import java class in jsp page如何在jsp页面中导入java类
【发布时间】:2014-01-03 12:45:44
【问题描述】:

大家好,我有一个位于 webapps/ROOT 的 jsp 页面和一个位于 WEB-INF/classes 中的 java 文件。我已经编译了我的 java 文件并获得了 .class 文件。现在我想将我的类文件导入 jsp 页面。为此,我创建了一个文件夹“mypackage”并将我的(类和java)文件都放入其中。之后我尝试导入jsp文件。为此,我编写了以下代码。 并且 mypackage 位于 WEB-INF/classes 文件夹中。

       <%@ page  import="mypackage.Ps123" %>

这里 ps123 是我的班级名称。当我遵循代码时

      Ps123 p = new Ps123();

我有错误

      Only a type can be imported.mypackage.ps123 resolves to a package
      ps123 cannot be resolved to a type

告诉我这段代码有什么问题。如果我不在 jsp 文件中导入 java 类。它工作正常。

【问题讨论】:

  • 你的java类的包是什么?
  • 只是一个建议。 类名以大写字母开头。例如 Ps123。
  • 我会注意的。但它不会给我一个错误
  • 我的包裹?然后&lt;%@ page import="myPackage.ps123" %&gt;
  • 其他需要考虑的事项:stackoverflow.com/questions/3177733/…

标签: java jsp tomcat


【解决方案1】:

让我们从错误消息开始。

  Only a type can be imported.mypackage.ps123 resolves to a package
  ps123 cannot be resolved to a type

首先要说明的是,这不是准确的错误信息。相反,您似乎是手动输入的......并且有点错误。 (我很难相信错误消息会被如此严重地标点!)

但假设消息本质上是正确的,那么我们可以推断出一些重要的东西。 JSP 编译器实际上找到了名为“mypackage.ps123”的东西,但它不是代表Java 类的.class 文件。此外,由于编译器认为“mypackage.ps123”是一个包,我们可以推断:

  • “WEB-INF/classes/mypackage/ps123”在你部署的 webapp 是一个目录,或者
  • “mypackage.ps123”包已在前面的类路径中定义;例如通过 Tomcat 共享库目录中的内容。

我能想到的唯一其他解释是,您对类名的错误选择是混淆 JSP 编译器。如果发生这种情况,那么它是一个编译器错误。但解决方法很简单,更改您的类名以符合 Java 标识符样式规则:类名应该始终以大写字母开头。

【讨论】:

  • 我仍然不相信。现在错误消息与您的班级名称或您在 JSP 中使用的名称不匹配!
猜你喜欢
  • 2012-05-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-20
  • 2017-05-26
  • 2012-02-15
  • 2010-09-19
相关资源
最近更新 更多