我已经尝试了一些教程来使用Spring Boot服务JSP页面。它们都返回404页面未找到错误。
为了克服已知的局限性,我正在使用WAR包装,并具有以下依赖性:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
我已经定义了JSP页面在application.properties中的路径:
spring.mvc.view.prefix= /WEB-INF/jsp/
spring.mvc.view.suffix= .jsp
请求JSP页面时,显示以下警告:
WARN 10251 --- [io-8080-exec-11] o.s.w.s.r.ResourceHttpRequestHandler : Path with "WEB-INF" or "META-INF": [WEB-INF/jsp/hello.jsp]
Spring Boot 2中是否已弃用JSP?您是否有任何使用JSP的Spring Boot 2工作示例?
答案 0 :(得分:2)
您能尝试像这样在您的依赖项中添加范围吗
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
答案 1 :(得分:1)
我正在使用Intellij IDEA。我发现我们不能直接运行SpringBootApplication主类。我们需要让专家来做。
简短的解决方案:maven通过以下命令从模块根目录中运行您的应用程序
mvn clean package spring-boot:run
您还可以使用Maven添加运行配置,这样就不必每次都键入命令。
有人说JSP文件夹应该放在src / main / resources / META-INF / resources / WEB-INF / jsp下。尽管这确实解决了spring boot应用程序的运行问题,但是当您使用tomcat运行应用程序时,它将失败。因此,如果要将应用程序部署到Tomcat,我们仍然需要保留结构。
答案 2 :(得分:0)
不幸的是,我找不到能够服务JSP页面的任何Spring Boot 2示例,因为它们都返回404错误。作为解决方法,我已按照本tutorial中的说明将应用程序配置为部署在WildFly上,然后在WildFly上使用JSP运行我的应用程序。
答案 3 :(得分:-1)
如果您想使用示例here it is。
This also help you.