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

Spring Boot中JSP视图无法找到的问题排查与解决

Spring Boot无法找到JSP视图的解决方案

问题定位

从提供的配置和日志来看,主要有以下几个问题导致JSP视图无法被找到:

  1. pom依赖重复且范围错误

    • 重复引入了tomcat-embed-jasper依赖,其中一个设置了<scope>provided</scope>,本地运行时该依赖会缺失,无法编译JSP。
    • spring-boot-starter-tomcat设置了<scope>provided</scope>,本地运行嵌入式Tomcat时会缺少必要的Tomcat核心依赖。
  2. 视图前缀配置错误

    • spring.mvc.view.prefix配置为/webapp/WEB-INF/jsp/,而webapp本身就是Web应用的根目录,正确前缀应该是/WEB-INF/jsp/。
  3. JSP文件位置或名称不匹配

    • 需要确认main/webapp/WEB-INF/jsp/目录下是否存在名为hello.jsp的文件,文件名需和Controller返回的hello完全一致(大小写敏感)。

修复步骤

1. 修正pom.xml依赖

删除重复的tomcat-embed-jasper依赖,调整spring-boot-starter-tomcat的scope(本地开发无需设为provided):

<dependencies>
    <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-jasper</artifactId>
        <!-- 无需指定版本,spring-boot-starter-parent会统一管理版本 -->
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
    </dependency>

    <!-- 本地开发时去掉provided,若后续打包war部署到外部Tomcat,再重新设置为provided -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <scope>runtime</scope>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>com.mysql</groupId>
        <artifactId>mysql-connector-j</artifactId>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

2. 修正application.properties配置

修改视图前缀为正确路径:

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

3. 确认JSP文件存在

确保src/main/webapp/WEB-INF/jsp/hello.jsp文件存在,示例内容可参考:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Hello</title>
</head>
<body>
    <h1>Hello World!</h1>
</body>
</html>

4. 重启应用

执行mvn clean清理Maven缓存,然后重启Spring Boot应用,访问http://localhost:8080/即可正常加载JSP页面。

内容的提问来源于stack exchange,提问作者lalala

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 17:55:30