You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.08 11:14:53