首页 > 解决方案 > Spring Boot Jar 中 jsp 文件的类路径位置

问题描述

我正在尝试编写一个能够使用 ModelAndView 将 JSP 文件发送回调用者的 Spring Boot 应用程序。

这是一个控制器方法:

@Controller
public class ExampleController
{
    @GetMapping("/login")
    public ModelAndView getAuthPage(@RequestParam Map<String, String> params)
    {
        System.out.println("In Login mapping!");

        ModelAndView view = new ModelAndView();
        view.setViewName("login");

        ModelMap models = view.getModelMap();
        models.addAttribute("message", "Log In");

        System.out.println("Returning View!");
        return view;
    }
}

我能够让该方法返回。

以下是 application.properties 中的三个字段

spring.mvc.view.prefix=/templates/
spring.mvc.view.suffix=.jsp
spring.thymeleaf.enabled=false

以下是我尝试存储 login.jsp 文件的一些位置的列表:

src/main/resources/templates (only place where I could see them in the jar file)
src/webapp
src/webapp/WEB-INF/views

查看一些 --debug 输出和这个Stack Overflow Question,应用程序似乎在一个名为META-INF/resources的文件夹中查找。虽然 Jar 中有一个META-INF文件夹,但没有META-INF/resources文件夹。

如果应用程序正在寻找.jar/META-INF/resources.login.jsp,有没有办法使用 Gradle 来确保这些 jsp 文件在那里。否则,有没有办法让应用程序在.jar/BOOT-INF/classes/templates/中查找那些 JSP 文件,这是我目前能够在 JAR 中获取这些 JSP 文件的地方?

现在,我只想在控制器方法返回时检测到文件(在 JAR 中),这样我的客户端就不会收到404 Not Found

注意:我知道这个问题,但提出的解决方案是创建一个战争而不是一个罐子,截至目前,我认为这是最后的解决方案类型。

标签: javaspringspring-bootjspjar

解决方案


推荐阅读