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

Spring Boot中JSP无法映射到控制器的问题求助

Spring Boot JSP视图映射问题排查及学习资源推荐

一、问题排查步骤

1. 修正JSP文件存放路径

Spring Boot默认不会将src/main/resources/WEB-INF识别为Web应用资源目录,正确的JSP存放路径应为src/main/webapp/WEB-INF/jsp/index.jsp。请将JSP文件从resources目录移至webapp目录下,若webapp目录不存在,手动创建该目录。

2. 验证视图解析器配置

检查application.properties中的视图前缀后缀配置,确保格式正确:

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

注意前缀末尾的斜线不能省略,后缀要与JSP文件扩展名一致。

3. 检查控制器注解与返回值

确保UserController使用@Controller注解而非@RestController(@RestController会将返回值直接作为响应体返回,而非解析为视图),同时方法返回逻辑视图名而非完整路径:

@Controller
public class UserController {
    @GetMapping("/index")
    public String showIndex() {
        return "index"; // 返回逻辑视图名,由视图解析器拼接前缀后缀
    }
}

4. 完善pom.xml依赖配置

Spring Boot 3.x基于Jakarta EE,需确保依赖版本匹配:

  • 添加tomcat-embed-jasper(JSP编译引擎)
  • 添加JSTL相关依赖(若JSP用到标签库)
  • 若使用WAR打包,设置打包方式为war,并将spring-boot-starter-tomcat的scope设为provided

示例依赖片段:

<packaging>war</packaging>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <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>2.0.0</version>
    </dependency>
    <dependency>
        <groupId>org.glassfish.web</groupId>
        <artifactId>jakarta.servlet.jsp.jstl</artifactId>
        <version>2.0.0</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
    </dependency>
</dependencies>

5. 配置IntelliJ IDEA Web资源目录

右键src/main/webapp目录 → 选择Mark Directory as → 点击Web Resource Directory,确保IDEA正确识别该目录为Web资源根目录。

6. 检查打包与运行方式

  • 若使用JAR打包,Spring Boot对JSP的支持存在限制,建议改为WAR打包,通过java -jar命令运行或部署至外部Tomcat。
  • 若使用IDEA运行,确保运行配置为Spring Boot应用,而非普通Java应用。

二、优质Spring Boot在线学习资源

  • Spring官方文档:覆盖Spring Boot所有版本的特性、配置与最佳实践,是最权威的参考资料。
  • Spring Boot官方指南:提供从入门到实战场景的分步教程,包含快速启动、数据库集成、安全等常见场景。
  • Stack Overflow Spring Boot标签:有大量真实问题与解决方案,遇到问题时优先检索已有回答。
  • GitHub开源实战项目:如电商、博客类Spring Boot项目,通过阅读源码学习工程化开发思路。
  • 技术博客系列教程:专注Java后端的技术博客发布的Spring Boot系列文章,多结合实际业务场景讲解,实用性强。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 14:22:41