【问题标题】:Include JSTL to maven project将 JSTL 包含到 maven 项目中
【发布时间】:2014-06-30 02:06:17
【问题描述】:

这是我的 pom.xml:

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

web.xml:

<?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">
<display-name>Archetype Created Web Application</display-name>
<welcome-file-list>
    <welcome-file>startPage.jsp</welcome-file>
</welcome-file-list>

<servlet>
    <servlet-name>DispatcherServlet</servlet-name>
    <servlet-class>DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>DispatcherServlet</servlet-name>
    <url-pattern>/servlet</url-pattern>
</servlet-mapping>

和 startPage.jsp

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

但是当我尝试打开页面时,我收到异常:

HTTP 状态 500 - 绝对 uri:http://java.sun.com/jsp/jstl/core 无法在 web.xml 或随此应用程序部署的 jar 文件中解析

我做错了什么?感谢您的帮助。

【问题讨论】:

    标签: java xml jsp maven jstl


    【解决方案1】:

    这似乎是因为您定义为&lt;scope&gt;provided&lt;/scope&gt;的范围

    删除&lt;scope&gt;provided&lt;/scope&gt; 试试看

    下面是Maven提供的范围的描述

    提供

    这很像编译,但表示您希望 JDK 或容器在运行时提供依赖项。例如,在为 Java Enterprise Edition 构建 Web 应用程序时,您可以将 Servlet API 和相关 Java EE API 的依赖设置为提供的范围,因为 Web 容器提供了这些类。此范围仅在编译和测试类路径上可用,并且不可传递。

    【讨论】:

    • 如果我使用依赖 whitout 范围,我有同样的问题
    • 没有结果。但是我有两个例外:HTTP Status 500 - java.lang.ClassNotFoundException: org.apache.jsp.startPage_jsp 和以前的。
    • 你的类路径可能有同一个库的多个版本
    猜你喜欢
    • 2014-02-05
    • 2017-03-14
    • 1970-01-01
    • 1970-01-01
    • 2017-11-06
    • 2018-12-19
    • 1970-01-01
    • 2016-06-23
    • 2014-11-19
    相关资源
    最近更新 更多