如何将pom属性放入jsp文件?

问题描述

我是一个初学者,我有一个小的多模块Maven项目,可用来和 tomcat(8.5)一起玩。该项目的框架来自几年的在线课程(这是一个法语平台:“ https://openclassrooms.com/fr/courses/4503526-organisez-et-packagez-une-application-java-avec-apache -maven”),然后使用最新版本的 Eclipse IDE

进行编码

现在,我正在研究 webapp模块, 我的目标是在jsp文件中打印来自webapp POM的某些属性(应用程序的名称,项目版本和时间戳)

为此,我将过滤选项与maven war插件一起使用。首先,如下所示,将依赖项放在父POM中

<pluginManagement>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-war-plugin</artifactId>
      <version>3.1.0</version>
    </plugin>
  </plugins>
</pluginManagement>

然后我使用属性和过滤功能将其设置到webapp POM中。

<properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
    <!-- app public name -->
    <application.name>Ticket</application.name>
    <!-- format timestamp -->
    <maven.build.timestamp.format>dd/MM/yyyy</maven.build.timestamp.format>
    <buildTimestamp>${maven.build.timestamp}</buildTimestamp>
</properties>


           <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <configuration>
                    <webResources>
                        <resource>
                            <directory>src/main/webapp</directory>
                            <filtering>true</filtering>
                            <includes>
                                <include>_include/header.jsp</include>
                                <include>_include/footer.jsp</include>
                                <include>about.jsp</include>
                            </includes>
                        </resource>
                    </webResources>
                </configuration>
            </plugin>

问题在于,当我将此Webapp部署在tomcat上时,这些属性显示为空。我认为可以读取并解析EL,但不能打印出值

jsp«about.jsp»:

<body>
<%@ include file="_include/header.jsp"%>

<div class="container">
    <ul>
        <li>Application : ${application.name}</li>
        <li>Version : ${project.version}</li>
        <li>Date du build : ${maven.build.timestamp}</li>
    </ul>
</div>
<%@ include file="_include/footer.jsp"%>
</body>

例如,行“版本:$ {project.version}” 在网络浏览器中显示“版本:” ,而不是“版本:1.0-SNAPSHOT”

最后,我编写了一个小servlet,以便使用名为“ Aboutsrv.java”的Eclipse运行应用程序。

@WebServlet("/Aboutsrv")
public class Aboutsrv extends HttpServlet {
    private static final long serialVersionUID = 1L;

    public Aboutsrv() {
        super();

    }

    protected void doGet(HttpServletRequest request,HttpServletResponse response)
            throws servletexception,IOException {

        this.getServletContext().getRequestdispatcher("/WEB-INF/about.jsp").forward(request,response);
    }

    protected void doPost(HttpServletRequest request,IOException {

    }

}

然后我尝试不使用蚀食,因此我使用«mvn clean package»构建项目,并使用来自tomcat的文件管理器部署了.war,但结果是相同的。>

我试图在互联网上的其他地方找到类似的主题,但是我只发现了有关将过滤器设置到POM中的旧主题(我已经这样做了)

总的来说,我真的可以使用外部视角,因为我用完了解决方

谢谢:)

(如果需要,我可以显示整个文件,如POM,但我尝试使其尽可能短,同时从我的初学者的角度仍然提供所有启示信息)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)