我用初始化程序创建了一个Spring Boot应用程序。
spring boot版本是2.1.3。释放。
问题是我想在启动应用程序中包含JSP,但是没有生成任何webapp文件夹。我在生成应用程序时选择了Spring MVC。
我在src / main / resources / templates文件夹中创建了一个jsp,并尝试在application.properties之类的各种配置中加载该文件,
spring.mvc.view.prefix=/WEB-INF/templates/
spring.mvc.view.suffix=.jsp
spring.mvc.view.prefix=/WEB-INF/classes/templates/
spring.mvc.view.suffix=.jsp
spring.mvc.view.prefix=/templates/
spring.mvc.view.suffix=.jsp
但是它们都不起作用。我收到404 whitelabel错误。
我尝试检查spring引用,但找不到与模板文件夹相关的任何变更日志。
我还尝试在pom.xml中添加以下依赖项
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<scope>provided</scope>
</dependency>
答案 0 :(得分:0)
尝试更改tomcat-embed-jasper中的以下内容
Remove <scope>provided</scope> OR change the scope to compile <scope>compile</scope>
JSP限制
运行使用嵌入式servlet容器(并打包为可执行归档文件)的Spring Boot应用程序时,JSP支持存在一些限制。
范围
compile
这是默认范围,如果未指定则使用。编译依赖项在项目的所有类路径中均可用。此外,这些依赖项会传播到相关项目中。
provided
这与编译非常相似,但是表明您希望JDK或容器在运行时提供依赖项。例如,在为Java Enterprise Edition构建Web应用程序时,您将对Servlet API和相关Java EE API的依赖关系设置为提供的范围,因为Web容器提供了这些类。此作用域仅在编译和测试类路径上可用,并且不可传递。
runtime
此作用域表明依赖性不是编译所必需的,而是执行所必需的。它在运行时和测试类路径中,而不在编译类路径中。