在 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.MyClassName
或 import mypackagename.*
,因此 不是 import mypackagename
只有包名。
<%@ page import="mypackagename.MyClassName" %>
也就是说,您不应该在 JSP 文件中编写原始 Java 代码。 Scriptlet 被认为是不好的做法。该代码属于真正的 Java 类。它在 Servlet 类中的位置非常好。它是什么,您认为将其全部移动到视图端并使用原始 Java 代码使模板文本混乱是“正确”解决方案的问题是什么?在一个新问题中详细说明它,然后我们可能能够提出正确的解决方案。也许你不知道像JSTL 这样的标签库的存在和力量?
【讨论】:
我不太清楚 jsp 文件中的原始 java 代码是什么意思。我的大部分代码都在我要导入的类中,我只想从 JSP 文件中的类中运行代码并显示结果。 对于原始 Java 代码,我的意思是十多年来不鼓励 scriptlets。<% %>
之间的所有 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 编译失败