0

我有一个 Maven web 项目,我在其中添加了JSTL依赖项pom.xml

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

.jsp文件中,我有 taglib 如下

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

但是,eclipse在那条线上显示错误

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

但是当我包含jstl.jarin时WEB-INF/lib,eclipse 不会显示这样的错误。

我的问题是,

即使 JSTL 包含在 Maven 依赖项中,为什么我还需要jstl.jar在文件夹中?WEB-INF/lib

4

3 回答 3

1

有时由于互联网连接不良,您的依赖 jar 文件未正确下载。在进行 Maven 项目之前,请确保您有良好的互联网连接。

Sol no 1:右键单击您的项目,转到属性-> Java Build Path->选中“Maven Dependencies”,您必须有红十字标志。这意味着您的 jar 在特定路径上丢失。因此您必须通过更新项目(或手动下载文件并粘贴到丢失的路径)来解决您的问题。

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

于 2013-11-12T10:49:32.560 回答
0

JSTL主要用于标签,仅在JSP中使用。虽然不需要编译,但 javac 在编译时不会打扰 JSP 文件。

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

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

于 2013-11-12T11:05:03.733 回答
0

这不是必需的。在 Eclipse 中重新加载您的 Maven 项目。

使用 'mvn package` 打包此项目后,检查 jstl.jar 是否在 WAR 中。

于 2013-11-12T12:17:03.890 回答