讲师中心 微信公众号
AI工具推荐 视频效率加速

Spring Boot 中 JSP 视图无法解析的常见原因与正确配置方法

风丽同学_7851

风丽同学_7851

发布时间:2026-09-01 19:55:57

|

690人浏览过

|

来源于php中文网

原创

Spring Boot 中 JSP 视图无法解析的常见原因与正确配置方法

Spring Boot 默认不支持 JSP,需手动引入 Jasper 依赖并正确配置视图解析路径;关键错误在于 spring.mvc.view.prefix 中误加了 /webapp 目录层级,实际资源路径应以 ServletContext 根为基准,即从 /WEB-INF/views/ 开始。

spring boot 默认不支持 jsp,需手动引入 jasper 依赖并正确配置视图解析路径;关键错误在于 `spring.mvc.view.prefix` 中误加了 `/webapp` 目录层级,实际资源路径应以 `servletcontext` 根为基准,即从 `/web-inf/views/` 开始。

在 Spring Boot 项目中集成 JSP 是一项有约束条件的任务——它仅在传统 WAR 部署到外部 Tomcat 时稳定支持,而不推荐用于嵌入式 Tomcat(如 spring-boot-starter-web 默认模式)。尽管如此,若你确需在开发阶段使用嵌入式容器配合 JSP(例如调试),必须严格满足以下三项前提:

✅ 必须满足的三大前提

  1. 项目打包方式为 war(而非默认的 jar):
    在 pom.xml 中声明:

    <packaging>war</packaging>

    并确保主应用类继承 SpringBootServletInitializer:

    @SpringBootApplication
    public class Application extends SpringBootServletInitializer {
        @Override
        protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
            return builder.sources(Application.class);
        }
        public static void main(String[] args) {
            SpringApplication.run(Application.class, args);
        }
    }
  2. 正确引入 tomcat-embed-jasper 且作用域为 provided:
    你已正确配置,无需改动:

    <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-jasper</artifactId>
        <scope>provided</scope>
    </dependency>
  3. 视图路径配置必须符合 Servlet 容器规范:
    ❌ 错误写法(含 /webapp):

    spring.mvc.view.prefix=/webapp/WEB-INF/views/

    ✅ 正确写法(/webapp 是开发目录,非运行时路径):

    Json Schema Toolkit
    Json Schema Toolkit

    使用 JSON Schema 验证 JSON 数据,从示例 JSON 生成 schema,并将其转换为 TypeScript 接口、Python 数据类或 Markdown 文档。

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

? 原因说明:Maven 构建后,src/main/webapp 下的内容会被复制到 WAR 包根目录(即 ServletContext 的 / 路径下)。因此 webapp/WEB-INF/views/hello.jsp 在运行时的真实访问路径是 /WEB-INF/views/hello.jsp,前缀中绝不可再包含 /webapp。

? 推荐标准目录结构(Maven)

src/
├── main/
│   ├── java/
│   ├── resources/
│   └── webapp/              ← 开发时存放位置
│       └── WEB-INF/
│           └── views/
│               └── hello.jsp
pom.xml

✅ 验证控制器写法(无需 @ResponseBody)

@Controller
public class SayHelloController {  // 类名建议 PascalCase + Controller 后缀

    @RequestMapping("/hello")
    public String hello() {
        return "hello"; // 解析为 /WEB-INF/views/hello.jsp
    }
}

⚠️ 重要注意事项

  • Spring Boot 2.3+ 已明确弃用对 JSP 的支持,官方强烈推荐使用 Thymeleaf、Freemarker 或纯前端方案(如 Vue/React + REST API);
  • 若使用 IntelliJ IDEA,请确认 Project Structure → Modules → Web → Web Resource Directory 已正确指向 src/main/webapp;
  • 日志中出现 "Path with 'WEB-INF' or 'META-INF'" 提示,是 Spring MVC 的安全拦截机制,表明路径格式被识别为受保护目录——这本身不是错误,而是说明路径已进入视图解析流程,但最终未找到对应文件,根源仍在前缀配置或文件未被正确打包;
  • 使用 mvn clean package 后,可解压生成的 WAR 文件,检查 WEB-INF/views/hello.jsp 是否真实存在。

✅ 总结

JSP 在 Spring Boot 中并非“开箱即用”,其可用性高度依赖部署方式与路径语义的精确匹配。修正 spring.mvc.view.prefix 为 /WEB-INF/views/ 是解决“404 JSP not found”问题的最关键一步。但长远来看,建议逐步迁移至现代化模板引擎,以获得更好的开发体验、热更新支持与社区维护保障。

热门AI工具

更多
Laper
Laper Hot

Laper是专为编剧、导演和制片人推出的 AI 原生剧本创作工具。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

PixPix
PixPix Hot

PixPix是一款面向电商视觉生产的AI商品图生成工具。

VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

相关专题

更多
spring框架介绍
spring框架介绍

本专题整合了spring框架相关内容,想了解更多详细内容,请阅读专题下面的文章。

2291

2025.08.06

Java Spring Security 与认证授权
Java Spring Security 与认证授权

本专题系统讲解 Java Spring Security 框架在认证与授权中的应用,涵盖用户身份验证、权限控制、JWT与OAuth2实现、跨站请求伪造(CSRF)防护、会话管理与安全漏洞防范。通过实际项目案例,帮助学习者掌握如何 使用 Spring Security 实现高安全性认证与授权机制,提升 Web 应用的安全性与用户数据保护。

437

2026.01.26

jsp分页功能如何实现
jsp分页功能如何实现

当数据有几万、几十万甚至上百万时,户必须要拖动页面才能浏览更多的数据,很大程度的影响了户体验。这时可以使用分页来显示数据,能够使数据更加清晰直观,环受数量的限制。php中文网为大家带来了jsp分页功能相关教程、以及相关文章等内容,供大家免费下载使用。

297

2023.06.21

jsp怎么打开
jsp怎么打开

打开jsp的步骤是安装Java开发环境、配置Web服务器、创建JSP文件、部署到Web服务器、启动Web服务器、在浏览器中访问JSP页面。本专题为大家提供jsp相关的文章、下载、课程内容,供大家免费下载体验。

730

2023.10.08

jsp格式怎么打开
jsp格式怎么打开

要打开JSP文件,您需要一个支持JSP的Web服务器和一个文本编辑器。将JSP文件放置在Web服务器的特定目录中,并通过浏览器访问该文件的URL来查看动态生成的内容。使用文本编辑器编辑JSP文件时,请确保正确使用Java代码标记 。

4950

2023.10.08

jsp编程软件怎么使用
jsp编程软件怎么使用

使用步骤:1、下载和安装Eclipse;2、创建新的动态Web项目;3、创建JSP文件;4、编写JSP代码;5、运行和调试JSP项目;6、调试JSP代码。更多关于jsp编程软件怎么使用的内容,大家可以访问本专题下面的文章。

2175

2023.10.19

jsp虚拟空间怎么配置
jsp虚拟空间怎么配置

配置jsp虚拟空间的步骤是:1、确定需求;2、创建目录结构;3、配置服务器;4、配置JSP;5、启动服务器;6、测试;7、监控和维护;8、备份和恢复;9、安全性考虑;10、性能优化;11、文档记录。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2359

2023.11.09

jsp分页功能实现方法
jsp分页功能实现方法

jsp分页功能实现方法实:1、在JSP页面中引入JSTL标签库;2、从数据库中获取数据;3、对数据进行分页处理;4、在页面中显示分页导航条;5、根据当前页码和每页显示数量,从分页后的数据中获取对应的数据并显示在页面上即可。想了解更多jsp的相关内容,可以阅读本专题下面的文章。

2672

2024.03.04

LLVM自定义Pass怎么写
LLVM自定义Pass怎么写

本专题聚焦LLVM自定义Pass开发,整理Pass类结构、run()方法、PreservedAnalyses、CMake构建、插件注册、-load-pass-plugin加载和测试用例编写流程。

0

2026.09.30

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
WEB前端教程【HTML5+CSS3+JS】
WEB前端教程【HTML5+CSS3+JS】

共101课时 | 20.7万人学习

JS进阶与BootStrap学习
JS进阶与BootStrap学习

共39课时 | 4.7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn