Spring MVC GET请求遇404错误:无法找到Home.jsp静态资源
Spring MVC 404白标错误问题解决步骤
1. 校验视图解析器配置
确保application.properties中配置了正确的JSP路径前缀和后缀:
spring.mvc.view.prefix=/WEB-INF/mypages/ spring.mvc.view.suffix=.jsp
配置后控制器返回视图名称时,无需手动添加前缀后缀,视图解析器会自动拼接路径。
2. 确认目录结构合规
检查项目目录是否与配置匹配,正确结构应为:
src └── main ├── java ├── resources └── webapp └── WEB-INF └── mypages ├── Home.jsp └── Show.jsp
注意文件名大小写(Linux环境严格区分),以及mypages目录是否确实在WEB-INF下。
3. 检查控制器映射逻辑
确保控制器的请求映射与返回视图名称正确:
@Controller public class HomeController { @GetMapping("/home") public String showHome() { return "Home"; // 需与JSP文件名完全一致,不能加.jsp或路径前缀 } }
避免返回/Home或Home.jsp这类错误格式的视图名。
4. 补全JSP相关依赖
Pom.xml中必须包含JSP解析所需依赖,Spring Boot项目需添加:
<dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> <version>9.0.65</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.1</version> <scope>provided</scope> </dependency>
缺失tomcat-embed-jasper会导致无法解析JSP文件。
5. 清理缓存并重启应用
- 执行
mvn clean install清理编译缓存,重新构建项目 - 重启应用服务器,确保资源文件被正确加载
6. 验证请求路径正确性
确认请求URL与控制器映射一致,例如控制器映射/home,则请求应为http://localhost:8080/home,禁止直接请求WEB-INF下的JSP文件(该目录资源无法直接访问,必须通过控制器转发)。
内容的提问来源于stack exchange,提问作者Gangadhar s
相关产品推荐
相关产品推荐

