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

时间:2011-05-13 06:11:23

标签: 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>

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

17 个答案:

答案 0 :(得分:97)

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

即。右键单击您的项目,然后选择“属性” - &gt; 'Targeted Runtimes'并选择您要在其上运行Web应用程序的服务器(Tomcat 6或7)。

答案 1 :(得分:61)

我也用这个

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

但我没有收到任何错误。

您是否在图书馆中加入了jstl.jar?如果不是,也许这会导致问题。还有“tld”文件夹吗?您的web.xml如何映射它?

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

答案 2 :(得分:34)

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

<dependency>
    <groupId>jstl</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
</dependency>

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

希望它有所帮助。

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

答案 3 :(得分:13)

尝试添加如下:

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

而不是

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

答案 4 :(得分:6)

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

答案 5 :(得分:5)

经过几次打击和试用后,我使用了这个。这对我有用。

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

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

答案 6 :(得分:3)

您可能正在瞄准没有内置JSTL支持的服务器(例如某些版本的Tomcat。)您需要配置自己的JSTL标记库。

答案 7 :(得分:3)

我试过&#34;验证&#34;使用验证工具在eclipse中使用de * .jsp和* .xml文件。

&#34;右键单击目录/文件 - &gt; - 验证&#34;它有效!

使用eclipse juno。

希望它有所帮助!

答案 8 :(得分:2)

使用:

  

standard.jar

解决问题。

答案 9 :(得分:2)

粘贴到/ WEB-INF / lib文件夹中的两个jar下面,然后转到项目属性并转到添加jar并选择这两个jar然后单击Ok,Ok

standard.jar, JSTL-1.0.2.jar

答案 10 :(得分:1)

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

只需转到项目,然后右键单击项目菜单 - &gt;清理项目错误肯定会删除并更新maven。

答案 11 :(得分:1)

你必须写为

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

确保你有jstl-1.0&amp; standard.jar BOTH 文件放在类路径中

答案 12 :(得分:1)

当您将两个必需的jar文件放在/ WEB-INF / lib文件夹下时,它将完美地工作,即 JSTL-1.2.jar 和/ WEB-INF / lib文件夹下的javax.servlet.jsp。

希望它有所帮助。 :)

答案 13 :(得分:1)

我解决了这个问题。 在taglib下面使用

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

并添加jstl-1.2.jar

答案 14 :(得分:0)

我在库中添加了jstl jar并将其添加到构建路径和部署程序集中,但它的工作正常。 然后我只是将我的jstl jar复制到webcontent里面的lib文件夹中,它有效。 在默认情况下包含在部署程序集中的eclipse lib文件夹中

答案 15 :(得分:0)

我将再添加一个解决方案。我下载了一个示例应用程序,它只是在这个taglib上卷曲。事实证明它并不关心属性周围的单引号。

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

一旦我改变了这些并确保jstl.jar在网络应用程序中,我很高兴。

答案 16 :(得分:0)

这应该有效

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

此外,请告诉我们您为什么要导入所有这些课程

<%@ page import="com.library.controller.*"%> 
<%@ page import="com.library.dao.*" %> 
<%@ page import="java.util.*" %> 
<%@ page import="java.lang.*" %> 
<%@ page import="java.util.Date" %>

我们不需要包含java.lang,因为它是默认包。