2010-06-01 85 views
6

我编写了一些代码作为Java Servlet,现在我正试图将它转换为JSP。我在一个我正在使用的单独文件中编写了一个类,我无法弄清楚如何让JSP文件识别这个类。我想这与导入有关。我居然给班上一个包(package mypackagename;)的名字,我试图用<%@ page import="mypackagename"%>,但我得到一个错误:在JSP文件中导入类

The import "mypackagename" cannot be resolved

+0

的可能重复[如何导入类在JSP?( http://stackoverflow.com/questions/239147/how-do-you-import-classes-in-jsp) – jjnguy 2010-06-01 13:06:21

回答

9

只需导入用同样的方式,你在一个真正的Java类来完成。即import mypackagename.MyClassNameimport mypackagename.*因此不是import mypackagename只有只有包名。

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

这就是说,你不应该在JSP文件中写入原始的Java代码。 Scriptlets被认为是不好的做法。该代码属于真正的Java类。它在Servlet类中的定位非常好。它是什么,你认为这是一个“正确”的解决方案,将其全部转移到视图方面,并用原始Java代码混淆模板文本的问题?在一个新问题中详细阐述它,然后我们可能会提出正确的解决方案。也许你没有意识到像JSTL这样的taglibs的存在和威力?

+0

即时通讯不太确定您的意思是由一个jsp文件中的原始java代码。我的大部分代码都在要导入的类中,我只是想从JSP文件中的类运行代码并显示结果。 – Michoel 2010-06-01 13:19:30

+1

对于原始的Java代码,我的意思是十多年来不鼓励* scriptlets *。那些'<% %>'之间的所有Java代码事物。在您的具体情况下,只需在servlet中运行该代码,将其存储为request属性并使用JSTL/EL显示它。 [Here](http://stackoverflow.com/questions/1831053/displaying-multiple-records-by-using-resultset/1832524#1832524)和[here](http://stackoverflow.com/questions/384189/how -do -i-make -a-java-resultset-available-in-my-jsp/2428468#2428468)就是一些例子。 [Here](http://courses.coreservlets.com/Course-Materials/csajsp2.html)是更好的JSP/Servlet教程。 – BalusC 2010-06-01 13:27:43

0

确保您的类是在WEB-INF/classes中的Web应用程序的目录,并通过包修改包的进口。*

+0

感谢关于。*的提示。即时通讯只是学习Java所以我忘了。我不知道这些文件必须放在WEB-INF/classes中,它们位于src /中。由于某些原因,eclipse不允许我在WEB-INF中创建一个新目录? (我正在使用谷歌appengine插件) – Michoel 2010-06-01 13:14:10