我正在使用Eclipse Kepler中的动态Web项目。我正在尝试使用JSTL <c:forEach>
编写一个简单的JSP。为此,我在库下包含了所需的JAR jstl-1.2.jar
,并将以下语句添加到JSP:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
然而,当我使用 Run as - &gt;运行它时在服务器上运行,它显示以下错误。
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
我已经咨询了很多链接,但我不明白这是怎么造成的以及我如何解决它。
答案 0 :(得分:1)
为此,我在库下包含了所需的JAR jstl-1.2.jar
这使它仅在编译期间可用,而不是在运行时。
您需要撤消您在项目的构建路径和部署程序集属性中执行的所有操作。如果你不确定你在那里做了什么改变,那么扔掉当前项目并从头开始重新创建项目并记住永远不要触摸项目的 Build Path 和部署汇编属性,直到你真正理解它在幕后做了什么(换句话说,当你能够在命令提示符下从头顶创建,构建和部署WAR而不使用任何IDE时)。 / p>
正确的程序是:
WebContent/WEB-INF/lib
文件夹。jstl-1.2.jar
文件放在那里。就是这样。没有什么需要做的了。无需在项目属性中的任何地方摆弄。 Eclipse会自动在那里做必要的魔术。
更新:根据评论,
将web.xml声明为版本2.4,我使用的是Basic Server:J2EE预览版
问题的原因是什么。 JSTL 1.2至少需要Servlet 2.5,而“J2EE预览”则完全过时。抓取Tomcat 7(选择核心ZIP文件),解压缩,将其集成到Eclipse中,将项目添加到Tomcat,修复web.xml
与Servlet 3.0兼容,然后启动Tomcat并输入所需的URL你喜欢的webbrowser。
答案 1 :(得分:0)
确保jstl-1.2.jar
目录和部署程序集中包含WEB-INF/lib
。
- 右键单击项目&gt;项目属性
- 部署程序集
- 点击添加,然后点击文件夹
- 选择WEB-INF / lib文件夹。
醇>
答案 2 :(得分:0)
刚遇到这个问题,网上没有直接说明。
解决方案: 将 JSTL 库添加到项目库中