将JSTL包含在maven项目中

时间:2014-05-12 15:58:00

标签: 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 - 无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri:http://java.sun.com/jsp/jstl/core

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

1 个答案:

答案 0 :(得分:1)

由于您定义为<scope>provided</scope>

的范围,它似乎正在发生

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

以下是Maven

提供的范围说明

<强>提供

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