spring-boot 基本 JSP 404 未找到

Posted

技术标签:

【中文标题】spring-boot 基本 JSP 404 未找到【英文标题】:spring-boot basic JSP 404 Not Found 【发布时间】:2015-05-09 10:37:53 【问题描述】:

无法使用spring-boot加载一个非常简单的JSP页面,得到404 Not Found。

src/main/java/SampleWebJspApplication.java

@Configuration
@EnableAutoConfiguration
@ComponentScan
public class SampleWebJspApplication extends SpringBootServletInitializer 
    public static void main(String[] args) throws Exception 
        SpringApplication.run(SampleWebJspApplication.class, args);
    

src/main/java/WebController.java

@Controller
public class WebController 
    @RequestMapping("/")
    public String welcome() 
        return "welcome";
    

src/main/webapp/WEB-INF/jsp/welcome.jsp

<!DOCTYPE html>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html lang="en">
    <body>
        <h1>Hello.</h1>      
    </body>
</html>

即使调试器显示控制器 RequestMapping 正在返回“欢迎”,也得到 404。

白标错误页面

这个应用程序没有明确的 /error 映射,所以你看到 这是一个后备。

2015 年 3 月 7 日星期六 19:35:15 EST 出现意外错误(type=Not 已找到,状态=404)。

【问题讨论】:

【参考方案1】:

我已经尝试了很多解决方案,但找不到可行的解决方案。

如果您正在使用 Intellij IDEA 并在拉头发时阅读此内容:请勿尝试使用 IDE 的运行 ▶︎ 按钮运行 Spring Boot 应用程序(带有动态 .jsp 视图)。

$ cd your_project_folder_path

$ ls //Check if you are in the same place with the pom.xml

然后输入

$ mvn spring-boot:run

现在您的应用程序已发送至localhost:8080

【讨论】:

这意味着问题出在您的构建工具上,而不是 IDE 本身 @fg78nc 请看docs.spring.io/spring-boot/docs/current/reference/html/…【参考方案2】:

在最新的 spring 版本中,要放在 application.properties 文件中的属性如下所示:

spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp

注意“mvc”包含在“spring.view.prefix”

另外,在较新版本的 Spring 中,@SpringBootApplication 有一个注解 @Configuration@EnableAutoConfiguration@ComponentScan

【讨论】:

【参考方案3】:

通常 Spring boot 不需要任何配置,除了在使用 Thymeleaf 时添加依赖项。

要在 Spring Boot 中运行 JSP,您必须进行一些配置:

需要的依赖:

 <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-jasper</artifactId>
        <scope>provided</scope>
    </dependency>
 <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
    </dependency>

如果您连接的是 mysql 数据库,那么:

 <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <scope>runtime</scope>
    </dependency>

在 Application.Properties 文件中:

 spring.mvc.view.prefix: /WEB-INF/jsp/
 spring.mvc.view.suffix: .jsp

现在你的好去! :D

【讨论】:

【参考方案4】:

我需要将此添加到我的 application.properties 文件中:

spring.view.prefix: /WEB-INF/jsp/
spring.view.suffix: .jsp

【讨论】:

@Crash-ID,知道了。谢谢。

以上是关于spring-boot 基本 JSP 404 未找到的主要内容,如果未能解决你的问题,请参考以下文章

http/404未找或无法使用怎么解决

如何在 spring-boot 中拦截嵌入式 Tomcat 上的“全局”404

为啥我用 spring-boot 得到 404 休息

Spring-Boot MVC 模板未加载(未找到 404)

如何重定向以“.jsp”结尾的网址

spring-boot整合freemarker 出现404