如何在 Spring Boot 中与 Spring MVC 一起提供遗留的 jsp 页面?

Posted

技术标签:

【中文标题】如何在 Spring Boot 中与 Spring MVC 一起提供遗留的 jsp 页面?【英文标题】:How to serve legacy jsp pages alongside Spring MVC in spring boot? 【发布时间】:2017-10-09 09:45:16 【问题描述】:

我有一个遗留项目,其中包含一些简单的 JSP 页面。

我们正在慢慢用 Spring MVC 替换那些 JSP 页面,但我需要继续提供那些尚未用 MVC 模式实现的 JSP,作为一个单独的 Web 应用程序。

所以,我最终应该是这样的:

情况 A: /legacy-url1/index.jsp -> 应该仍然可以像 JSP 页面一样访问,没有控制器。

情况 B: /legacy-url2/index.jsp -> /new-url2/ -> 应该由 spring mvc 控制器提供服务,使用 thymeleaf html 文件填充视图。

情况 B 正在按预期工作,我尝试摆弄 SimpleUrlHandlerMapping 和 UrlFilenameViewController,如下所示:

    @Bean
    public SimpleUrlHandlerMapping simpleUrlHandlerMapping() 
        SimpleUrlHandlerMapping mapping = new SimpleUrlHandlerMapping();

        Properties urlProperties = new Properties();
        urlProperties.put("*.jsp", "urlFilenameViewController");

        mapping.setMappings(urlProperties);

        return mapping;
    

    @Bean
    public UrlFilenameViewController urlFilenameViewController() 
        UrlFilenameViewController urlFilenameViewController = new UrlFilenameViewController();
        urlFilenameViewController.setPrefix("/jsp/");

        return urlFilenameViewController;
    

关于如何做到这一点的任何想法?我可能遗漏了一些东西,但我在谷歌上搜索的答案没有成功。

我正在使用带有 java 配置的 Spring Boot。

感谢任何帮助!

【问题讨论】:

【参考方案1】:

define view controllers 可以用于每个旧 JSP 页面,configure 2 view resolvers 可以使用适当的顺序。

【讨论】:

以上是关于如何在 Spring Boot 中与 Spring MVC 一起提供遗留的 jsp 页面?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Spring Boot 流式传输音频

非法字符导致spring boot微服务构建在docker镜像创建过程中失败

未从 application.properties 中提取 Spring Boot JOOQ sql 方言

Spring Boot:Spring Boot 如何测试打包部署

如何在 spring-boot 中禁用 spring-data-mongodb 自动配置

Java / Spring中与Restful API交互的工具[重复]