这个问题在这里已经有了答案:Can not find the tag library descriptor for “http://java.sun.com/jsp/jstl/core” (17 answers) 7年前关闭。
我正在使用 JSP 页面来打印一组值。我正在尝试为此使用 JSTL <c:forEach>
。
<c:forEach items="${objects}" var="object">
<td>${object.name} </td>
</c:forEach>
问题是我的 JSTL taglib 声明:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
IDE 在此行显示错误
找不到标记库描述符。
许多论坛指向旧的 Sun 站点以下载 JSTL 库。现在所有这些链接都指向 Oracle 主页,而没有指向 JSTL 二进制文件的链接。这使我相信有一种更新的方法可以实现这一目标。
jstl.jar
吗?检查链接可能会有所帮助stackoverflow.com/questions/5987908/…
要解决此问题:
jstl jar 应该在您的类路径中。如果您使用的是 maven,请使用此处提供的代码段在 pom.xml 中添加对 jstl 的依赖项。如果您不使用 maven,请从此处下载 jstl jar 并将其部署到您的 WEB-INF/lib 中。确保在 jsp 顶部有以下 taglib 指令:<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
只需检查我们自己的 JSTL wiki page,即可获得正确的下载链接和清晰的安装说明。
将鼠标放在您自己放置在问题上的 [jstl]
标签上方,直到出现一个黑框,然后单击其中的 info 链接。
然后向下滚动到 JSTL 版本信息,直到找到 JSTL 1.2(或 1.2.1)的下载链接。
最后,只需将该文件完全放入 webapp 的 /WEB-INF/lib
。
这样,taglib 声明就不能再给出任何错误,并且 JSTL tags and functions 应该可以正常工作。
jstl-1.2.jar
而不一定是 jstl-api-1.2.jar
我只是想分享我的经验。我对使用 maven 的 jstl 有同样的问题。我通过添加两个依赖项来解决它。
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
如果您使用 Tomcat 服务器,我建议您将 JSTL .jar 文件放到 Tomcat lib 文件夹中。通过这样做,您将可以自动访问所有 Web 项目中的 JSTL(当然,在 .jsp 文件中使用 taglib 声明)。
这是对不使用 maven 的人的修复。您还需要将 standard.jar
添加到您的 lib 文件夹以使核心标记库正常工作。适用于 jstl 1.1 版。
<%@taglib prefix="core" uri="http://java.sun.com/jsp/jstl/core"%>
我在使用 eclipse IDE 的 maven 项目中遇到了这个问题。我在项目的构建路径中更改了“顺序和导出”,将 Maven 依赖项放在首位,错误消失了。我猜这是因为 Eclipse IDE 最初是在加载 Maven 库之前构建我的应用程序源。
https://i.stack.imgur.com/UJAKF.png
不定期副业成功案例分享