【问题标题】:Taglibs are not recognized when war deployed to jetty 8战争部署到 8 号码头时无法识别标签库
【发布时间】:2024-01-04 19:22:01
【问题描述】:

在为这个简单的问题苦苦挣扎了将近一天之后,我问这个问题。 我有一个个人 Web 应用程序,我一直在本地主机上的 tomcat 上开发它(没问题),因为我想在服务器上节省内存,我决定将它部署在生产使用的码头上。而就在这时,问题来了。我无法弄清楚事情的正确配置。我的文件如下:

pom.xml 的相关部分

 <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.5</version>
    </dependency>
    <dependency>
        <groupId>taglibs</groupId>
        <artifactId>standard</artifactId>
        <version>1.1.2</version>
    </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">
<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/applicationContext.xml,
        WEB-INF/hibernateContext.xml</param-value>
</context-param>
<servlet>
    <servlet-name>appServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value></param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>appServlet</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

当渲染我的jsp时,我得到了这个

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

而不是将其识别为标记库。

任何帮助将不胜感激。谢谢。

【问题讨论】:

  • 打包后你的taglibs jars是否被复制到lib文件夹中?
  • @VinayLodha 是的,罐子都在那里

标签: java maven jetty jstl taglib


【解决方案1】:

我认为 JSTL 可能需要这种依赖:

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

【讨论】:

  • 我已将其包含在内,但问题仍然存在。
  • 不幸的是,即使这样也没有帮助。让我抓狂的是,在 tomcat 上一切正常,而不是在应该提供与 tomcat 相同的标记库处理的码头上。