在 pom.xml 文件中配置以下依赖项
<!--引入SpringBoot内嵌Tomcat对jsp的解析依赖,不添加解析不了jsp-->
<!--仅仅只是展示jsp页面,只添加以下一个依赖-->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<!--如果要使用servlet必须添加以下两个依赖-->
<!--servlet依赖的jar包-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.3.1</version>
</dependency>
<!--如果要使用JSTL必须添加该依赖-->
<!--jatl标签依赖的jar包start-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
在 pom.xml 的 build 标签中要配置以下信息
SpringBoot 要求 jsp 文件必须编译到指定的 META-INF/resources 目录下才能访问,否则访问不到。其实官方已经更建议使用模板技术(后面会讲模板技术)
<build>
<!--
Springboot项目默认推荐使用的前端引擎是thymeleaf
现在我们要使用springboot集成jsp,手动指定jsp最后编译的路径
而且springboot集成jsp编译jsp的路径是springboot规定好的位置
META-INF/resources
-->
<resources>
<resource>
<!--源文件位置-->
<directory>src/main/webapp</directory>
<!--指定编译到META-INF/resources,该目录不能随便写-->
<targetPath>META-INF/resources</targetPath>
<!--指定源文件夹中的哪个资源要编译进行 **表示webapp目录及子目录,*.*表示所文件-->
<includes>
<include>**/*.*</include>
</includes>
</resource>
</resources>
在 application.properties 文件配置 Spring MVC 的视图展示为jsp,这里相当于 Spring MVC 的配置
#配置SpringMvc视图解析器
#其中:/表示目录为src/main/webapp
#前缀
spring.mvc.view.prefix=/
#后缀
spring.mvc.view.suffix=.jsp
集成完毕之后,剩下的步骤和我们使用 Spring MVC 一样
application.yml 格式的配置文件
在 com.loey.web包下创建 JspController 类,并编写代码
@Controller
public class JspController {
@RequestMapping(value="/jsp")
public String jsp(Model model){
model.addAttribute("data","SpringBoot前端Model使用JSP页面");
return "index";//返回到jsp页面的名称
}
@RequestMapping(value="/jsp1")
public ModelAndView jsp1(){
ModelAndView mv = new ModelAndView();
mv.addObject("data","SpringBoot前端ModelAndView使用JSP页面");
mv.setViewName("index");
return mv;
}
}
在 src/main 下创建一个 webapp 目录,然后在该目录下新建index.jsp 页面
如果在webapp目录下右键,没有创建jsp的选项,可以在Project Structure中指定webapp为 Web Resource Directory
在 jsp 中获取 Controller 传递过来的数据
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>SpringBoot的JSP</title>
</head>
<body>
<h1>${data}</h1>
</body>
</html>
重新运行 Application,通过浏览器访问测试