Spring Boot 使用 JSP 详解:从依赖配置到视图渲染全流程
虽然 Spring Boot 推荐使用 Thymeleaf、Freemarker 等模板引擎,但在迁移传统 SSH/SSM 项目时,仍需支持 JSP 视图。由于 Spring Boot 对 JSP 的支持并非默认集成,需手动配置依赖、资源路径和视图解析器。从 “依赖配置→目录结构→视图解析→常见问题” 四个维度,详细讲解 Spring Boot 集成 JSP 的完整流程,帮你顺利实现 JSP 页面渲染。
核心背景:为什么 Spring Boot 不默认支持 JSP?
Spring Boot 推荐使用 嵌入式容器(如 Tomcat)和 可执行 JAR 打包,而 JSP 存在两个关键限制,导致其未被默认支持:
- JSP 编译依赖 Servlet 容器:JSP 需要 Tomcat 的
jasper 引擎编译为 Servlet 类,而嵌入式 Tomcat 默认不包含 jasper 依赖;
- JAR 包无法直接包含 JSP:JSP 文件需放在
WEB-INF 目录下,而 Spring Boot 默认的 JAR 打包结构中没有 WEB-INF,需手动配置资源路径映射。
因此,集成 JSP 的核心是 “添加 JSP 编译依赖” 和 “配置 JSP 资源目录”。
Spring Boot 集成 JSP 的完整步骤
步骤 1:添加 JSP 相关依赖
需引入两个核心依赖:tomcat-embed-jasper(JSP 编译引擎)和 jstl(JSP 标准标签库,可选但推荐)。
Maven 依赖配置:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| <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> </dependency>
<dependency> <groupId>javax.servlet.jsp.jstl</groupId> <artifactId>jstl-api</artifactId> <version>1.2</version> <exclusions> <exclusion> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.glassfish.web</groupId> <artifactId>jstl-impl</artifactId> <version>1.2</version> </dependency> </dependencies>
|
依赖说明: