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

Posted

技术标签:

【中文标题】如何解决:找不到“http://java.sun.com/jsp/jstl/core”的标签库描述符[重复]【英文标题】:How to resolve : Can not find the tag library descriptor for "http://java.sun.com/jsp/jstl/core" [duplicate] 【发布时间】:2011-08-24 16:18:59 【问题描述】:
<%@ 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 的库描述符

【问题讨论】:

您在查看文件或运行网络应用程序时在编辑器中收到此错误? 您使用的是什么服务器?你添加了什么库? 同时发布你的 web.xml 的根标签 【参考方案1】:

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

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

【讨论】:

这很有帮助,而且不明显!谢谢。 上帝感谢您的回答。 您可能还需要在代码的 taglib 定义行上的错误图标的左边单击鼠标右键并选择“验证”选项以在设置目标运行后消除错误-时间。 Eclipse 中的 Clean and Build 选项似乎不会重新验证资源。 谢谢。你拯救了我的一天 在我的情况下,Tomcat 6 已经设置好了,取消选中并再次检查就可以了!【参考方案2】:

我也用这个

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

但我没有收到任何错误。

您是否将jstl.jar 包含在您的库中?如果不是,这可能会导致问题。还有'tld'文件夹你有吗?你的web.xml 怎么样了?

查看有关jstl 的信息以获取其他信息。

【讨论】:

试试这个罐子repo1.maven.org/maven2/javax/servlet/jstl/1.2/jstl-1.2.jar【参考方案3】:

正如@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),所以最好正如@willix 所提到的,为您的项目设置目标服务器。

【讨论】:

这对我有用!错误消失了。 如果您的部署服务器已有,请添加&lt;scope&gt;provided&lt;/scope&gt;【参考方案4】:

尝试像这样添加:

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

而不是拥有

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

【讨论】:

感谢您的回答 对我不起作用。 就我而言,我将其硬编码为使用“https”而不是“http”...#facepalm【参考方案5】:

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

【讨论】:

如果您同时添加这两个 jar,它肯定会起作用。谢谢...:) 添加这两个 jar 并在我的 JSP 顶部添加路径;很适合我! 也适用于我。最初我只有 jstl-api,但没有找到库描述符。添加jstl jar后它解决了【参考方案6】:

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

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

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

【讨论】:

这意味着您的库中有旧的 JSTL 1.0 版本。请阅读***.com/tags/jstl/info【参考方案7】:

您的目标可能是没有内置 JSTL 支持的服务器(例如,某些版本的 Tomcat。)您需要提供自己的 JSTL 标记库。

【讨论】:

【参考方案8】:

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

标准.jar, jstl-1.0.2.jar

【讨论】:

standard.jar 为我修复了它,仅在 pom 中不起作用【参考方案9】:

我尝试使用验证工具在 Eclipse 中“验证”de *.jsp 和 *.xml 文件。

“右键单击目录/文件->-验证”,它起作用了!

使用 eclipse juno。

希望对你有帮助!

【讨论】:

【参考方案10】:

使用:

标准.jar

解决问题。

【讨论】:

【参考方案11】:

&lt;%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %&gt;无关。

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

【讨论】:

@Buddhashwar Ojhar 很好的答案!你说得对:)我用你的解决方案解决了这个问题【参考方案12】:

你必须写成

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

确保您有 jstl-1.0 和 standard.jar BOTH 文件都放在类路径中

【讨论】:

【参考方案13】:

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

希望对您有所帮助。 :)

【讨论】:

【参考方案14】:

我解决了这个问题。 在标签库下面使用

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

并添加jstl-1.2.jar

【讨论】:

对我有用的简单答案【参考方案15】:

这应该有效

<%@ 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,因为它是默认包。

【讨论】:

【参考方案16】:

我会再添加一个解决方案。我下载了一个示例应用程序,它只压接在这个 taglib 上。原来它并不关心属性周围的单引号。

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

一旦我更改了这些并确保 jstl.jar 在网络应用程序中,我就可以开始了。

【讨论】:

【参考方案17】:

我在库中添加了 jstl jar 并将其添加到构建路径和部署程序集,但它确实有效。 然后我简单地将我的 jstl jar 复制到 webcontent 内的 lib 文件夹中,它起作用了。 默认情况下包含在部署程序集中的 eclipse lib 文件夹中

【讨论】:

以上是关于如何解决:找不到“http://java.sun.com/jsp/jstl/core”的标签库描述符[重复]的主要内容,如果未能解决你的问题,请参考以下文章

找不到“http://java.sun.com/jsp/jstl/core”的标签库描述符

无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri:[http://java.sun.com/jsp/jstl/core]

无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri:[http://java.sun.com/jsp/jstl/core]

信息: TLD skipped. URI: http://java.sun.com/jstl/* is already defined解决方法

jsp运行时错误,代码505?

系统找不到指定路径,如何解决?