Springbooot整合JSP的步骤
由于Sprintboot默认不支持JSP,所以即使我们引入了 spring-boot-stater-web依赖,但是也只包含了剔除了JSP核心引擎的tomcat,因此我们需要单独导入JSP依赖和JSTL依赖。其次,由于Sprintboot默认不支持JSP,因此resource目录下的templates只能存放非JSP的页面信息,所以我们还需要创建webapp/WEB-INF来存放JSP页面。
1.导入依赖
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
导入依赖之后一定要import change。否则不生效!!!!!
2.创建存放JSP文件的目录
在java、resources 同居目录下创建webapp,并在其下创建WEB-INF用来存放JSP页面。
3.创建JSP测试页面
由于Sprintboot默认不支持JSP,所以无法直接创建JSP页面。可以先创建HTML页面,再更改后缀为JSP页面。注:更改后缀后要引入JSP头文件信息。
<%@ page import="java.util.*" contentType="text/html; charset=UTF-8"%>
4.创建controller类
添加@Configuration注解,标示该类是一个controller类。
添加@GetMapping()映射,以便访问。
@Controller
public class JspController {
@GetMapping("index")
public String name(){
return "index";
}
}
5.配置view视图的前缀后缀
步骤4的controller中返回了index,想要访问到JSP页面,需要完整的目录路径,即webapp/WEB-INF/index.jsp,因此我们需要在yml文件中指定前缀webapp/WEB-INF和后缀 .jsp。
spring:
mvc:
view:
prefix: /WEB-INF/ #由于默认目录是webapp ,因此只需要写/WEB-INF/即可
suffix: .jsp