在 JSP 文件中导入类

Posted

技术标签:

【中文标题】在 JSP 文件中导入类【英文标题】:Importing a class in a JSP file 【发布时间】:2011-02-26 08:30:46 【问题描述】:

我编写了一些代码作为 Java Servlet,现在我正在尝试将其转换为 JSP。我在我正在使用的单独文件中编写了一个类,但我不知道如何让 JSP 文件识别该类。我想这与进口有关。我给了这个类一个包(package mypackagename;)名称,我尝试使用<%@ page import="mypackagename"%>,但我得到一个错误:

无法解析导入“mypackagename”

【问题讨论】:

How do you import classes in JSP? 的可能重复项 【参考方案1】:

只需像在真正的 Java 类中一样导入它。 IE。 import mypackagename.MyClassNameimport mypackagename.*,因此 不是 import mypackagename 只有包名。

<%@ page import="mypackagename.MyClassName" %>

也就是说,您不应该在 JSP 文件中编写原始 Java 代码。 Scriptlet 被认为是不好的做法。该代码属于真正的 Java 类。它在 Servlet 类中的位置非常好。它是什么,您认为将其全部移动到视图端并使用原始 Java 代码使模板文本混乱是“正确”解决方案的问题是什么?在一个新问题中详细说明它,然后我们可能能够提出正确的解决方案。也许你不知道像JSTL 这样的标签库的存在和力量?

【讨论】:

我不太清楚 jsp 文件中的原始 java 代码是什么意思。我的大部分代码都在我要导入的类中,我只想从 JSP 文件中的类中运行代码并显示结果。 对于原始 Java 代码,我的意思是十多年来不鼓励 scriptlets&lt;% %&gt; 之间的所有 Java 代码。在您的特定情况下,只需在 servlet 中运行该代码,将其存储为请求属性并使用 JSTL/EL 显示它。 Here 和 here 是一些示例。 Here 是更好的 JSP/Servlet 教程。【参考方案2】:

确保你的类在web应用的WEB-INF/classes目录下,逐个修改包的导入*

【讨论】:

感谢最后关于 .* 的提示。我刚刚学习java,所以我忘记了。我不知道文件必须放在 WEB-INF/classes 中,它们位于 src/ 出于某种原因 eclipse 不允许我在 WEB-INF 中创建新目录? (我正在使用 google appengine 插件)

以上是关于在 JSP 文件中导入类的主要内容,如果未能解决你的问题,请参考以下文章

在使用 WebWorker 时,从导入其他类的文件中导入类会导致 Angular 8 编译失败

Typescript:如何从 javascript 文件中导入类?

使用 css 模块,如何从文件中导入类

如何在同一目录或子目录中导入类?

Python:如何禁止从模块中导入类?

如何禁用模块中导入类的自动linting?