Sun JSTL taglib声明失败,并显示"无法找到标记库描述符"

Atm*_*tma 65 spring jsp jstl spring-mvc

我正在使用JSP页面来打印值数组.我正在尝试使用JSTL <c:forEach>.

<c:forEach items="${objects}" var="object">
    <td>${object.name} </td>
</c:forEach>
Run Code Online (Sandbox Code Playgroud)

问题是我的JSTL taglib声明:

 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
Run Code Online (Sandbox Code Playgroud)

IDE在此行上显示错误

找不到标记库描述符.

许多论坛都指向旧的Sun站点下载JSTL库.现在所有这些链接都指向Oracle主页,没有指向JSTL二进制文件的链接.这让我相信有一种更新的方法来实现这一目标.

Bab*_*nam 92

要解决此问题:

  1. jstl jar应该在你的classpath中.如果您使用的是maven,请在pom.xml使用此处提供的代码段中为jstl添加依赖项.如果您不使用maven,请从此处下载jstl jar 并将其部署到您的WEB-INF/lib.

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

     <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
    
    Run Code Online (Sandbox Code Playgroud)

  • JSTL已被移动 - 使用此链接代替依赖项:http://mvnrepository.com/artifact/javax.servlet.jsp.jstl/jstl/1.2 (3认同)

Bal*_*usC 35

只需查看我们自己的JSTL维基页面,即可获得正确的下载链接和清晰的安装说明.

将鼠标放在您[jstl]自己提出问题的标签上方,直到出现黑框并在其中单击信息链接.

在此输入图像描述

然后向下滚动到JSTL版本信息,直到找到JSTL 1.2(或1.2.1)的下载链接.

在此输入图像描述

最后,只需在webapp中删除该文件即可/WEB-INF/lib.

在此输入图像描述

这样,taglib声明不再出现任何错误,JSTL标记和函数应该可以正常工作.