Spring Boot应用无法找到JSP文件,访问根路径时跳转至/error映射的问题求助
Spring Boot应用无法找到JSP文件,访问根路径时跳转至/error映射的问题求助
大家好!我正在做一个用来测试Java中JSP功能的小型Spring Boot应用,但遇到了一个很奇怪的问题:访问http://localhost:8080/时,日志明明显示已经转发到了正确的JSP文件路径,可最终还是返回404错误,跳转到了/error映射。而且只有我自己遇到这个问题,其他人好像都没碰到,这就更懵了😅
项目结构说明
我的JSP文件放在src/main/webapp/WEB-INF/jsp/路径下,和配置里指定的路径完全一致,路径是没问题的。
我的配置与代码
application.properties
spring.application.name=valutadivisoreperfetto spring.mvc.view.prefix=/WEB-INF/jsp/ spring.mvc.view.suffix=.jsp server.port=8080 logging.level.web=DEBUG logging.level.org.springframework.web=DEBUG # Attiva debug per i view resolver logging.level.org.springframework.web.servlet.view=TRACE
home.jsp(仅保留关键部分,HTML/CSS已省略)
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://jakarta.tags.core" prefix="c" %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <!-- HTML和CSS代码此处省略 -->
Controller代码
@Controller public class CheckNumeroController { @GetMapping("/") public String home(){ return "home"; } }
pom.xml配置
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- Per supportare JSP --> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>jakarta.servlet.jsp.jstl</groupId> <artifactId>jakarta.servlet.jsp.jstl-api</artifactId> <version>3.0.0</version> </dependency> <dependency> <groupId>org.glassfish.web</groupId> <artifactId>jakarta.servlet.jsp.jstl</artifactId> <version>3.0.1</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
控制台关键日志
当我访问http://localhost:8080/时,控制台输出了这些日志,能看到已经转发到/WEB-INF/jsp/home.jsp,但最后还是返回了404:
2025-05-07T12:21:29.798+02:00 DEBUG 11668 --- [valutadivisoreperfetto] [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : GET "/", parameters={} 2025-05-07T12:21:29.839+02:00 DEBUG 11668 --- [valutadivisoreperfetto] [nio-8080-exec-1] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to it.prova.valutadivisoreperfetto.controller.CheckNumeroController#mostraHome() 2025-05-07T12:21:29.879+02:00 DEBUG 11668 --- [valutadivisoreperfetto] [nio-8080-exec-1] o.s.w.s.v.ContentNegotiatingViewResolver : Selected 'text/html' given [text/html, application/xhtml+xml, image/avif, image/webp, image/apng, application/xml;q=0.9, */*;q=0.8, application/signed-exchange;v=b3;q=0.7] 2025-05-07T12:21:29.880+02:00 DEBUG 11668 --- [valutadivisoreperfetto] [nio-8080-exec-1] o.s.web.servlet.view.JstlView : View name 'home', model {} 2025-05-07T12:21:29.889+02:00 DEBUG 11668 --- [valutadivisoreperfetto] [nio-8080-exec-1] o.s.web.servlet.view.JstlView : Forwarding to [/WEB-INF/jsp/home.jsp] 2025-05-07T12:21:29.901+02:00 DEBUG 11668 --- [valutadivisoreperfetto] [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed 404 NOT_FOUND 2025-05-07T12:21:29.903+02:00 DEBUG 11668 --- [valutadivisoreperfetto] [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : "ERROR" dispatch for GET "/error", parameters={} 2025-05-07T12:21:29.914+02:00 DEBUG 11668 --- [valutadivisoreperfetto] [nio-8080-exec-1] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController#errorHtml(HttpServletRequest, HttpServletResponse) 2025-05-07T12:21:29.955+02:00 DEBUG 11668 --- [valutadivisoreperfetto] [nio-8080-exec-1] o.s.w.s.v.ContentNegotiatingViewResolver : Selected 'text/html' given [text/html, text/html;q=0.8] 2025-05-07T12:21:29.979+02:00 DEBUG 11668 --- [valutadivisoreperfetto] [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Exiting from "ERROR" dispatch, status 404
已尝试的解决方法
我已经试过这些办法,但都没解决问题:
- 将项目打包方式改为WAR
- 更换过SDK和JRE的版本
- 直接运行target目录下的jar文件(之前其他相同结构的项目这样运行是正常的,但现在这个项目不行)
求助问题
明明日志显示已经转发到正确的JSP路径了,为什么还是返回404呢?有没有大佬能帮我看看哪里可能出问题了?非常感谢!
内容来源于stack exchange
相关产品推荐
相关产品推荐

