java - 将 JSTL 包含到 Maven 项目中

标签 java xml jsp maven jstl

这是我的 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 文件中解析

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

最佳答案

它的发生似乎是因为您定义为 <scope>provided</scope> 的范围

删除<scope>provided</scope>并尝试一下

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

提供

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

关于java - 将 JSTL 包含到 Maven 项目中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23613641/

相关文章:

java - “ArrayAdapter requires the resource ID to be a TextView” 问题

Java:Spring:读取 spring context.xml 时发生 XML 冲突 重复定义: 'identifiedType'

java - SpringMVC : how to get the value of @RequestMapping in the function

python - odoo 域过滤器many2many?

java - 无法在 Spring Boot 中加载 View

Java机器人类

java - 如何防止Boxlayout/Box拉伸(stretch)子组件?

jsp - Tomcat:程序未从 webapps 运行

java - 在返回响应之前获取 servlet 请求的状态

java - PostConstruct 在 BeanPostProcessor 之前被调用