最近正是新冠肺炎疫情时期,朋友公司给zf做一个疫情信息发布系统, 问了我一些技术上的问题,我一听是给政府做,必须给安排上JSP,只有JSP才配! 废话不多说直接开始

开始大家都懂得,在IDEA上用Spring的初始化向导把项目初始化了先

添加JSP要用到的依赖

以下是pom.xml

<dependencies>
    <!-- Spring MVC 的依赖 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <!-- servlet相关依赖 -->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <scope>provided</scope>
    </dependency>
    <!-- jstl标签库的依赖 -->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
    </dependency>
    <!-- jsp引擎 必须 -->
    <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-jasper</artifactId>
        <scope>provided</scope>
    </dependency>
    <!-- 单元测试 不需要的可不加 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
        <exclusions>
            <exclusion>
                <groupId>org.junit.vintage</groupId>
                <artifactId>junit-vintage-engine</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
</dependencies>

其中jsp引擎是 必须 要有的,就像一辆汽车必须要有一辆发动机似的

<dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-jasper</artifactId>
    <scope>provided</scope>
</dependency>

编写一个简单controller

为了方便我直接在启动类加了 很简单就不多说了

@SpringBootApplication
@Controller
public class JspApplication {

    public static void main(String[] args) {
        SpringApplication.run(JspApplication.class, args);
    }


    @GetMapping({"/index.jsp", "/", ""})
    public String index(Model model){
        model.addAttribute("message", "Spring Boot JSP HelloWorld!");
        return "index";
    }

}

创建目录来放置自己的JSP页面

创建/src/main/webapp/WEB-INF/views

注意:jsp不像thymeleaf和freemarker一样我们可以直接把页面放在templates目录,把jsp放在templates目录会出现404错误

我们在views文件夹下创建一个jsp页面
<%@ page language="java" contentType="text/html; charset=UTF-8"
         pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>TEST</title>
</head>
<body>
<h1>
    ${message}<!-- 我们在这里可以直接拿在controller放置的message-->
</h1>
</body>
</html>

配置JSP

在springboot的核心配置文件application.properties添加配置

spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp

启动项目访问 成功显示!20200212152233