【问题标题】:Quarkus How to Serve JSP FilesQuarkus 如何提供 JSP 文件
【发布时间】:2020-02-26 02:52:53
【问题描述】:

我一直在研究 Quarkus 以及如何在保持现有 JSP 基础的同时将其用于新开发。

此时将我们所有的 JSP 重写为 servlet 和 html 文件是不合理的。这是我们最终可以为之奋斗的目标,但目前还不行。所以,我一直在尝试配置 Quarkus,以便能够为我的 JSP 文件提供服务。

现在需要注意的是,我们的 JSP 非常古老,并且是由基本上不了解 JSP 技术的人编写的。它们大多是 scriplet 代码,几乎没有围绕 scriplet 的 html。

所以我从使用引导方法的标准 Quarkus“入门”application 开始。那工作得很好。所以我然后添加了一个新文件到 resources->META-INF->resources 命名为 test.jsp。这是一个非常基础的文件,没有添加任何特殊内容。

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Test JSP</title>
</head>
<body>

</body>
</html>

我使用应用程序根文件夹中的mvnw compile quarkus:dev 启动应用程序。一切都运行了,我可以在 localhost:8080 访问默认的 index.html。但是,当我尝试加载 JSP 文件 localhost:8080/test.jsp 时,浏览器想要下载该文件。

进一步研究,我发现并在application.properties文件中添加了一些设置(https://quarkus.io/guides/http-reference)

quarkus.http.root-path=/
quarkus.servlet.context-path=/resources

但后来我只能通过 localhost:8080/test/ 进入 html 页面,但浏览器仍然想下载 JSP 文件。

我尝试的最后一件事是配置一个 undertow 服务器,以 forecube/undertow-jsp-sample 为例。不幸的是,使用 Quarkus 启动开发服务器的方式,主类没有加载,所以 undertow 容器没有启动。

我问了这么多问题,是否可以使用 Quarkus 提供 JSP 文件?如果是这样,那我错过了什么?

【问题讨论】:

标签: jsp quarkus


【解决方案1】:

Quarkus 不支持 JSP,我不希望他们会添加对它的支持。无论如何,您可以将 Struts 2 与 Freemarker 一起使用 https://github.com/apache/struts-examples/tree/master/quarkus

【讨论】:

    【解决方案2】:

    你可以使用

    Qute 模板引擎

     <dependency>
               <groupId>io.quarkus</groupId>
               <artifactId>quarkus-resteasy-qute</artifactId>
      </dependency>
    

    Quarkus + Qute + RDBMS: https://github.com/knowledgefactory4u/Quarkus/tree/main/quarkus-qute-crud

    Quarkus + Qute + MongoDB:https://github.com/knowledgefactory4u/Quarkus/tree/main/quarkus-qute-mongodb-crud

    或

    Freemarker 模板引擎

     <dependency>
             <groupId>io.quarkiverse.freemarker</groupId>
             <artifactId>quarkus-freemarker</artifactId>
             <version>0.2.7</version>
          </dependency>
    

    Quarkus + Freemarker CRUD :https://github.com/knowledgefactory4u/Quarkus/tree/main/quarkus-freemarker-crud

    【讨论】:

    • 感谢您的意见。我一直想试试Qute。但此时,我不想重写 JSP 文件。我只是希望能够在 Quarkus 环境中显示它们。
    猜你喜欢
    • 2011-01-08
    • 2022-08-09
    • 2011-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-11
    相关资源
    最近更新 更多