Spring Boot项目JSP加载失败出现404错误的原因排查
Spring Boot JSP页面404错误排查求助
我正在搭建一个基础Spring Boot项目,通过Controller调用JSP文件展示页面,但页面无法显示,出现404错误,错误信息如下:
This application has no explicit mapping for /error, so you are seeing this as a fallback.
Fri Aug 25 05:00:19 IST 2023
There was an unexpected error (type=Not Found, status=404).
以下是我的项目结构、Controller文件、application.properties配置文件及pom.xml文件内容,请求帮忙排查404错误的原因:
项目结构

Controller文件
@Controller public class MainController { @GetMapping("/home") public String home() { System.out.println("hello in home"); return "home"; } @RequestMapping("/contact") @ResponseBody public String contact() { return "In contact"; } }
application.properties配置文件
server.port=8585 spring.mvc.view.prefix=/views/ spring.mvc.view.suffix=.jsp
pom.xml文件
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.1.3</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.springboot.learn</groupId> <artifactId>project</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <name>project</name> <description>Demo project for Spring Boot</description> <properties> <java.version>17</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> <version>10.1.10</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
排查方向及修复方案
JSP文件位置错误
Spring Boot默认从src/main/webapp目录加载JSP资源,你的views目录放在src/main/resources下,不符合加载约定。需要将views目录移动到src/main/webapp路径下。依赖版本与配置问题
- 移除
tomcat-embed-jasper依赖的手动版本号,让Spring Boot父POM自动管理版本,避免版本冲突; - 若本地直接用
java -jar运行,需将spring-boot-starter-tomcat的scope改为compile(或直接删除scope标签,默认即为compile),否则运行时会缺少Tomcat容器导致JSP无法渲染。
- 移除
文件名称匹配检查
确认views目录下存在home.jsp文件,文件名与Controller返回的home完全一致(注意大小写敏感)。
内容的提问来源于stack exchange,提问作者Lakshay Kumar
相关产品推荐
相关产品推荐

