无法在Spring Boot应用程序中提供JSP

时间:2019-01-02 09:16:55

标签: spring-boot spring-mvc


我已经尝试了一些教程来使用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工作示例?

4 个答案:

答案 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添加运行配置,这样就不必每次都键入命令。

Configuration

有人说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.