Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsp 为什么在Maven项目的WEB-INF/lib中需要jstl.jar?_Jsp_Maven_Jstl - Fatal编程技术网

Jsp 为什么在Maven项目的WEB-INF/lib中需要jstl.jar?

Jsp 为什么在Maven项目的WEB-INF/lib中需要jstl.jar?,jsp,maven,jstl,Jsp,Maven,Jstl,我有一个Maven web项目,我在pom.xml <dependency> <groupId>jstl</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> 但是,eclipse在这一行显示了错误 找不到“”的标记库描述符 但是当我在WEB-INF/lib中包含jstl.ja

我有一个Maven web项目,我在
pom.xml

<dependency>
    <groupId>jstl</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
</dependency>
但是,eclipse在这一行显示了错误

找不到“”的标记库描述符

但是当我在
WEB-INF/lib
中包含
jstl.jar
时,eclipse并没有显示这样的错误

我的问题是,


为什么我需要在
WEB-INF/lib
文件夹中有
jstl.jar
,即使jstl包含在Maven Dependency中?

有时由于internet连接不良,您的Dependency jar文件未正确下载。 在进行maven项目之前,请确保您具有良好的internet连接

解决方案1:右键单击您的项目,转到属性->Java构建路径->检查“Maven依赖项”,您必须有红十字标志。 这意味着您的jar在特定路径上丢失。因此您必须通过更新项目(或手动下载文件并粘贴到丢失的路径)来解决此问题 你的问题解决了


Sol no 2:在使用maven projet之前,请检查您的internet连接。

JSTL主要用于标记,仅在JSP中使用。虽然编译这不是必需的,但javac在编译时不会为JSP文件操心

但是,当jsp执行时,jsp将被转换为Java文件,并在容器使用之前进行编译。在执行此操作时,需要JSTL.jar将JSP标记转换为正确的java代码,这就是为什么在编译时不需要JSTL.jar,而在运行应用程序时需要JSTL.jar的原因。希望这对你有帮助


您可以将依赖范围设置为运行时。maven将把jar包含到lib中。

这不是必需的。在eclipse中重新加载maven项目

使用“mvn package”打包此项目后,请检查jstl.jar是否在WAR中

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