这里涉及到的是JavaWeb里的内容,如果忘记了可以去复习一下JavaWeb基础就会明白。
在main目录下,创建一个存放JSP的文件夹webapp,创建出来后只是一个普通的文件夹,
需要修改它的属性,打开项目结构,左侧项目结构里选择Modules,中部选择该项目下的Web,右侧Web Resource Directories栏里,选择点击右上角的 +
在打开的目录结构里,选择自己创建的wabapp文件夹,点击OK
点击右下角的CREAT ARTIFACT
再点击APPLY —>OK ,
就设置好了,可以看到该文件夹上有个小蓝点,变成web资源文件夹了。
Spring Boot 官方推荐使用的前端页面是 Thymeleaf ,如果使用 Thymeleaf 就可以直接使用,使用其他的就要单独做集成,在pom
文件中添加依赖
<!--引入 Spring Boot 内嵌的 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 必须添加该依赖
<!--jstl 标签依赖的 jar 包 start-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
配置编译相关信息
<!--
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>
<!--指定源文件夹中需要编译的资源-->
<includes>
<include>*.*</include>
</includes>
</resource>
</resources>
在配置文件中配置视图解析器
# 配置视图解析器
spring.mvc.view.prefix=/
spring.mvc.view.suffix=.jsp
在 Controller 中写代码
package com.gushi.demo.web;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class HelloController {
// 第一种写法
@RequestMapping(value = "/say")
public ModelAndView say(){
ModelAndView mv = new ModelAndView();
mv.addObject("message","Hello,SpringBoot!");
mv.setViewName("say");
return mv;
}
// 第二种写法
@RequestMapping(value = "/index")
public String index(Model model){
model.addAttribute("message","HelloWorld!");
return "say";
}
}
在webapp里写视图页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h1>${message}</h1>
</body>
</html>
启动访问