我正在尝试使用JSTL,但是我收到以下错误:
Can not find the tag library descriptor for "http://java.sun.com/jsp/jstl/core"
这是如何引起的,我该如何解决?
答案 0 :(得分:46)
在JSP中使用taglib定义,或者最好在第一行的每个页面中包含它。
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
您的项目中还有修复jstl-1.2
依赖项。也可以在web.xml
中使用至少2.4的servlet规范。
maven依赖是(maven是一个开源开发工具)
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
<scope>compile</scope>
</dependency>
在web.xml
开始写作
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
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_2_5.xsd">
修改强>
我想添加一条注释,@ informatik01在评论中提到了Maven存储库提供的更新版本的JSTL库:JSTL version 1.2.1 API和JSTL 1.2.1。
答案 1 :(得分:14)
即使我为jstl和standard添加了jar文件,我也遇到了同样的问题。对我来说,它为我的项目添加了一个Targeted运行时后解决了。
转到项目属性&gt; Targeted Runtimes并选择您正在使用的服务器(Tomcat 7.0 for me)。
答案 2 :(得分:3)
您可以尝试使包含jsp-s的文件夹成为eclipse的源文件夹,这解决了我的同样问题。如下:
- 打开项目的属性。(右键单击项目,然后选择属性)
- 选择Java Build Path,选择Source选项卡,单击Add Folder并选择包含jsp-s的文件夹,确定
醇>
答案 3 :(得分:3)
在WEB-INF目录中创建一个libs文件夹,并添加jstl,标准jar,如下所示。
答案 4 :(得分:1)
Dude只在项目构建路径中包含standard.jar文件。
答案 5 :(得分:1)
只需添加
<!-- jstl -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
然后尝试运行
mvn eclipse:eclipse -Dwtpversion=2.0
将解决问题
答案 6 :(得分:0)
我有类似的问题,为什么在使用maven时为什么要添加外部jar文件?
我已经包含jstl maven依赖项,然后我遇到错误“找不到“ http://java.sun.com/jsp/jstl/core的标记库描述符””。 然后,我包括以下依赖项,然后得到错误解决,而不包括任何单个外部jar文件。
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
答案 7 :(得分:-1)