0

我正在使用 Eclipse 帮助程序进行 Java EE 开发。我正在开发一个 Struts Web 应用程序。在 JSP 页面中,我使用这样的代码

<script type="text/javascript" src="<%out.print(getServletContext().getContextPath());%>/js/jquery.js"></script>
<link rel="stylesheet" href="<%out.print(getServletContext().getContextPath());%>/css/home.css" />

当我运行我的服务器时,此页面正常工作。但是,Eclipse 在getServletContext()

__2F_Compiler_2F_WebContent_2F_pages_2F_home_2E_jsp 类型的方法 getServletContext() 未定义

这是一个屏幕截图:

截屏

因为页面工作正常,我想在 Eclipse 中隐藏这个错误。我怎样才能做到这一点?

4

2 回答 2

4

我不能说 Eclipse 的错误,但在这种特定情况下,您应该使用隐式 JSP scriptlet 变量application而不是使用HttpServlet-inherited 方法。

<script type="text/javascript" src="<%out.print(application.getContextPath());%>/js/jquery.js"></script>
<link rel="stylesheet" href="<%out.print(application.getContextPath());%>/css/home.css" />

与具体问题无关,这是一种 90 年代编写 JSP 的方式,自十多年前发布的 JSP 2.0 以来官方不鼓励这种方式。您确定在学习 JSP 时正在阅读最新的资源吗?您应该改用 EL 表达式。

<script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery.js"></script>
<link rel="stylesheet" href="${pageContext.request.contextPath}/css/home.css" />

或者,通过<c:set>保存样板:

<c:set var="root" value="${pageContext.request.contextPath}" />
...
<script type="text/javascript" src="${root}/js/jquery.js"></script>
<link rel="stylesheet" href="${root}/css/home.css" />

也可以看看:

于 2013-11-12T16:28:58.843 回答
0

如果你使用 Tomcat 6.0,你应该添加扩展的 Servlet。

项目->属性->添加库->服务器运行时

它将添加 apache 的库。

于 2014-02-22T06:59:49.923 回答