java - 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
注意:我知道这个问题,但提出的解决方案是创建一个战争而不是一个罐子,截至目前,我认为这是最后的解决方案类型。
解决方案
推荐阅读
- openid-connect - 如何允许未经授权的用户使用具有 OpenID Connect 身份验证类型的 AppSync 访问某些查询/突变?
- html - 最后包含静态 CSS 文件(用于品牌推广)
- javascript - JavaScript 动画未与 HTML 链接
- excel - 在 VBA 中使用 Select Case 对两对字符串进行二进制比较
- java - Kotlin 使用可变数量的参数调用错误的重载 java 方法
- jetbrains-ide - JetBrains IDE 中的打印选择光标索引
- asp.net - 不支持 RDLC ReportViewer 浏览器
- command-line - 使用命令行在 CentOs 7.6 上安装 ColdFusion Standard (2018)
- c# - 获取对列表的访问权限,这是类中的一个字段
- javascript - 使用 $ObjMap 的 Redux