我有一个Maven网络项目,我在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在该行显示错误
的标记库描述符
但是当我在jstl.jar
中包含WEB-INF/lib
时,eclipse并没有显示这样的错误。
我的问题是,
为什么我需要在jstl.jar
文件夹中包含WEB-INF/lib
,即使JSTL包含在Maven依赖关系中?
答案 0 :(得分:1)
有时由于互联网连接不良,您的依赖jar文件未正确下载。 确保在maven项目工作之前你有良好的互联网连接。
Sol no 1:右键单击您的项目,转到属性 - &gt; Java Build Path-&gt;检查“Maven Dependencies”你必须有红十字标志。 这意味着您的jar在特定路径上丢失。因此您必须通过更新项目来解决(或手动下载文件并粘贴到丢失的路径中) 你的问题解决了。
Sol no 2:请在使用maven projet之前检查您的互联网连接。
答案 1 :(得分:0)
JSTL主要用于标记,仅在JSP中使用。虽然不需要编译它,但javac在编译时不会打扰JSP文件。
但是,当jsp正在执行时,JSP将被转换为Java文件,并在容器使用之前进行编译。在执行此操作时,需要JSTL.jar将JSP标记转换为适当的Java代码,这就是编译时不需要JSTL.jar的原因,但在运行应用程序时需要JSTL.jar。希望这可以帮助你!!!。
您可以将依赖范围设置为运行时。 maven将jar包含在lib中。
答案 2 :(得分:0)
不是必需的。在eclipse中重新加载你的maven项目。
使用'mvn package`打包此项目后,检查jstl.jar是否在WAR内。