【问题标题】:Sun JSTL taglib declaration fails with "Can not find the tag library descriptor" [duplicate]Sun JSTL taglib 声明因“找不到标记库描述符”而失败 [重复]
【发布时间】:2012-11-15 17:45:14
【问题描述】:

我正在使用 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 二进制文件的链接。这让我相信有一种更新的方法可以实现这一目标。

【问题讨论】:

标签: spring jsp spring-mvc jstl


【解决方案1】:

要解决此问题:

  1. jstl jar 应该在您的类路径中。如果您使用的是 maven,请使用提供的here 的 sn-p 在您的 pom.xml 中添加对 jstl 的依赖项。如果您不使用 maven,请从 here 下载 jstl jar 并将其部署到您的 WEB-INF/lib

  2. 确保在 jsp 的顶部有以下 taglib 指令:

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

【讨论】:

【解决方案2】:

只需查看我们自己的JSTL wiki page,即可获得正确的下载链接和清晰的安装说明。

将鼠标放在您自己在问题上放置的[jstl]标签上方,直到出现一个黑框,然后单击其中的信息链接。

然后向下滚动到 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
【解决方案3】:

我只是想分享我的经验。我对使用 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>

【讨论】:

    【解决方案4】:

    如果您使用 Tomcat 服务器,我建议您将 JSTL .jar 文件放入 Tomcat lib 文件夹。通过这样做,您将可以自动访问所有 Web 项目中的 JSTL(当然,在 .jsp 文件中使用 taglib 声明)。

    【讨论】:

      【解决方案5】:

      您可以下载Apache Standard Taglib 并将jar 包含在您的项目中。

      【讨论】:

        【解决方案6】:

        这是对不使用 maven 的人的修复。您还需要将 standard.jar 添加到您的 lib 文件夹中,以便核心标签库正常工作。适用于 jstl 1.1 版。

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

        【讨论】:

          【解决方案7】:

          我在使用 Eclipse IDE 的 maven 项目中遇到了这个问题。我在项目的构建路径中更改了“顺序和导出”,将 Maven 依赖项放在首位,错误消失了。我猜这是因为 Eclipse IDE 最初是在加载 Maven 库之前构建我的应用程序源代码。

          【讨论】:

            【解决方案8】:

            我在 Spring Tool Suite 3.2 上遇到了同样的问题,并在将 jstl 的版本添加到依赖项列表时手动将其更改为 1.2(从 1.1.2),并且错误消失了。

            【讨论】:

              猜你喜欢
              • 2015-02-09
              • 2017-03-01
              • 2018-11-22
              • 2013-03-04
              • 2011-08-24
              • 2011-04-27
              • 1970-01-01
              • 2021-08-27
              相关资源
              最近更新 更多