2

我正在 Eclipse Kepler 中开发一个动态 Web 项目。我正在尝试使用 JSTL 编写一个简单的 JSP <c:forEach>。为此,我jstl-1.2.jar在库下包含了所需的 JAR,并将以下语句添加到 JSP:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

但是,当我使用Run as --> Run on Server运行它时,它显示以下错误。

org.apache.jasper.JasperException: /test.jsp(4,61) PWC6188: The absolute uri:     http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar files deployed with this application  

我已经查阅了很多链接,但我不明白这是怎么引起的,我该如何解决。

4

3 回答 3

1

为此,我在库下包含了所需的 JAR jstl-1.2.jar

这使得它仅在编译时可用,而不是运行时可用。

您需要撤消在项目的构建路径部署程序集属性中所做的一切。如果你不确定你在那里做了什么改变,那么扔掉当前的项目并从头开始重新创建项目,记住永远不要接触项目的构建路径部署程序集属性,直到你真正理解它是什么在幕后进行(换句话说,当您能够在命令提示符下从头顶创建、构建和部署 WAR 而无需使用任何 IDE)。

正确的程序是:

  • 打开项目的WebContent/WEB-INF/lib文件夹。
  • jstl-1.2.jar文件放在那里。

而已。没有什么需要做的了。无需在项目属性的任何地方摆弄。Eclipse 将在那里自动执行必要的魔法。

也可以看看:


更新:根据评论,

web.xml 声明为 2.4 版,我正在使用 Basic Server: J2EE Preview at localhost

这就是你的问题的原因。JSTL 1.2 至少需要 Servlet 2.5 并且“J2EE Preview”已经完全过时了。获取Tomcat 7(选择核心 ZIP 文件),解压缩,将其集成到 Eclipse 中,将项目添加到 Tomcat,将您的项目修复web.xml为与 Servlet 3.0 兼容,然后启动 Tomcat 并在您喜欢的网络浏览器中输入所需的 URL。

于 2013-11-12T10:38:52.613 回答
0

确保它jstl-1.2.jar包含在您的WEB-INF/lib目录和部署程序集中。

  1. 右键单击项目 > 项目属性
  2. 部署组装
  3. 单击添加,然后单击文件夹
  4. 选择 WEB-INF/lib 文件夹。
于 2013-11-12T10:30:11.733 回答
0

刚遇到这个问题,在线上没有任何直接的解决方法。

解决方案:将 JSTL 库添加到项目库中

于 2020-12-27T08:48:37.523 回答