为了账号安全,请及时绑定邮箱和手机立即绑定

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

/ 猿问

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

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

我把它包含在我的JSP页面的最顶层:

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

我已将JSTL JAR文件放在WEB-INF/lib目录中。但是,JSP仍然无法解析taglib。我得到以下错误:

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


查看完整描述

3 回答

?
牛魔王的故事

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

基于您之前的一个问题,您正在使用Tomcat 7.在这种情况下,您需要JSTL 1.2。但是,你有一个jstl.jar文件,而JSTL 1.2显然包含了这样的版本号jstl-1.2.jar。唯一的文件名jstl.jar是JSTL 1.0和1.1的典型文件名。这个版本需要standard.jar沿着/WEB-INF/lib其中包含必要的TLD文件。但是,在您的特定情况下,standard.jar显然缺少/WEB-INF/lib这个,这正是无法解析taglib URI的原因。

要解决此问题,您必须删除错误的JAR文件,下载jstl-1.2.jar并将其全部删除/WEB-INF/lib。就这样。您不需要提取它,也不需要在项目的构建路径中弄乱

不要忘记删除那个松散的c.tld文件。它绝对不属于那里。这确实是在互联网其他地方的一些不良教程或答案中指示的。这是一个由重大误解和错误配置引起的神话。在类路径中永远不需要松散的JSTL TLD文件,也不需要在以前的JSTL版本中。

如果您使用的是Maven,请使用以下坐标:

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version></dependency>

你还应该确保你的web.xml声明符合至少 Servlet 2.4和因此不作为的Servlet 2.3或以上。否则,JSTL标记内的EL表达式将无法工作。选择与目标容器匹配的最高版本,并确保您的<!DOCTYPE>任何地方都没有web.xml。这是一个Servlet 3.0(Tomcat 7)兼容的例子:

<?xml version="1.0" encoding="UTF-8"?><web-app
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    version="3.0">

    <!-- Config here. --></web-app>

也可以看看:

  • 我们的JSTL维基页面(您可以通过将鼠标悬停在jstl上并点击信息链接到达那里)

  • 如何安装JSTL?绝对的uri:http://java.sun.com/jstl/core无法解决


查看完整回答
反对 回复 2019-08-27
?
白衣染霜花

URI取决于您使用的JSTL的版本。对于1.0版,请使用:

http://java.sun.com/jstl/core

对于1.1(及更高版本),您需要使用:

http://java.sun.com/jsp/jstl/core


查看完整回答
反对 回复 2019-08-27
?
慕容森

我有同样的问题,尽管有jstl

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version></dependency>

我不得不添加'标准':

<dependency>
    <groupId>taglibs</groupId>
    <artifactId>standard</artifactId>
    <version>1.1.2</version></dependency>

另外,如前一篇文章所述:

  • 对于1.0版使用:http://java.sun.com/jstl/core

  • 对于1.1(及更高版本)使用:http://java.sun.com/jsp/jstl/core


查看完整回答
反对 回复 2019-08-27

添加回答

回复

举报

0/150
提交
取消
意见反馈 邀请有奖 帮助中心 APP下载
官方微信