1、前言
SpringBoot不推荐使用jsp,因为jsp在编译的时候先翻译成.java文件,然后再编译成.class文件,运行的时候就是一个servlet的.class文件,比较重量级
2、添加依赖
jsp依赖
<!--JSP核心引擎依赖--> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> </dependency> <!--JSTL依赖--> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> </dependency>
pom文件所有依赖
<dependencies> <!--JSP核心引擎依赖--> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> </dependency> <!--JSTL依赖--> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> </dependency> <!--web项目相关依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--测试相关依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies>
3、创建webapp目录和其下子目录WEB-INF存放jsp页面
注意:webapp目录与java目录同级
在WEB-INF目录下编写jsp页面
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <h1>${jsp}</h1> </body> </html>
4、编写Controller和配置视图前缀后缀
1、编写Controller跳转jsp页面
@Controller public class IndexController { @GetMapping("/toJsp") public String toIndexJsp(Model model){ model.addAttribute("jsp","Hello,JSP李四"); System.out.println("==============进来了============"); return "index"; } }
2、在application.yml文件中配置视图的前缀和后缀
spring: mvc: view: # 前缀 prefix: /WEB-INF/ # 后缀 suffix: .jsp
3、启动项目测试
5、会遇到的问题
前端报404
后台:Path with “WEB-INF“ or “META-INF“: [WEB-INF/Index.jsp]
解决办法:
1、重新加载maven,再重新启动项目访问
2、如果1步骤没有解决,关闭IDEA再重新打开,再启动项目访问