如何解决:找不到"http://java.sun.com/jsp/jstl/core"的标记库描述符

Sam*_*011 90 java jsp jstl

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page import="com.library.controller.*"%>
<%@ page import="com.library.dao.*" %>
<%@ page import="java.util.*" %>
<%@ page import="java.lang.*" %>
<%@ page import="java.util.Date" %>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Return Page</title>
</head>
<body bgcolor="#aabcde">
<div align="right"><a href="Login.jsp">Logout</a></div>
<table align="center" border="2" cellspacing="3" cellpadding="3">
<tr><th>BookID</th><th>BookName</th><th>Issuedate</th><th>returndate</th></tr>
<c:forEach var="element" items="${list}">
    <tr>
        <td>${element.getBookid}</td><td>${element.getBookname()}</td>  
        <td>${element.getIssuedate()}</td><td>${element.getReturndate()}</td>
    </tr>
</c:forEach>
Run Code Online (Sandbox Code Playgroud)

Eclipse IDE显示红色下划线,当我关注它时,标记是:找不到http://java.sun.com/jsp/jstl/core的库描述符

小智 98

我知道这个线程现在已经有一年了,但遇到了同样的问题,我设法通过为我的项目设置目标服务器来解决问题.

即右键单击您的项目并选择"属性" - >"目标运行时",然后选择要在其上运行Web应用程序的服务器(Tomcat 6或7).

  • 您可能还需要右键单击taglib定义代码行上错误图标的左边距,并选择'validate'选项以在设置目标运行时后消除错误.Eclipse中的Clean and Build选项似乎不会重新验证资源. (11认同)

ace*_*ace 60

我也用这个

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

但我没有得到任何错误.

你有没有加入jstl.jar你的图书馆?如果不是,也许这会导致问题.还有"tld"文件夹吗?那web.xml你的地图怎么样?

有关其他信息,请查看有关jstl的信息.


rva*_*lez 36

正如@ace所提到的,你需要在你的项目中使用jstl.jar,所以如果你使用maven,你可以添加这个依赖:

<dependency>
    <groupId>jstl</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

资料来源:http://mvnrepository.com/artifact/jstl/jstl/

希望能帮助到你.

编辑:大多数服务器已经具有此依赖关系,如果您使用maven添加它可能会导致版本冲突(如Method/ClassNotFoundException)如果您没有很好地配置服务器,所以最好为您的项目设置目标服务器,如@ willix提到.

  • 如果您的部署服务器已经有,则添加`<scope>提供</ scope>`. (4认同)

小智 13

尝试添加如下:

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

而不是拥有

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

  • 不适合我. (7认同)

小智 6

添加javax.servlet.jsp.jstl-api-1.2.1.jar和standard-1.1.2.jar


Nis*_*ant 5

经过几次打击和试用后,我使用了这个.这适合我.

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

警告:正如BalusC正确提到的,这适用于JSTL 1.0.

  • 这意味着您在lib中拥有旧的JSTL 1.0版本.请阅读http://stackoverflow.com/tags/jstl/info (6认同)