1.开始开始开始
SpringBoot前端如果要使用jsp了话,需要在pom文件中加入以下依赖。
<!-- 引入SpringBoot内嵌Tomcat对jsp的解析依赖,不添加这个解析不了jsp -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
同时,在pom文件中的<build>标签下,添加如下内容:
<!--
SpringBoot项目默认推荐使用的前端引擎是thymeleaf
现在我们要使用SpringBoot集成jsp,手动指定jsp最后编译的路径
同时SpringBoot集成jsp编译jsp的路径是规定好的:META-INF/resources
-->
<resources>
<resource>
<!-- 源文件夹 -->
<directory>src/main/webapp</directory>
<!-- 指定编译到的路径为 META-INF/resources -->
<targetPath>META-INF/resources</targetPath>
<!-- 指定源文件夹中的哪些资源需要进行编译 -->
<includes>
<include>*.*</include>
</includes>
</resource>
</resources>
要使用jsp,我们回顾一下之前的 SpringMVC,是不是有一个东西叫视图解析器,那么如今换成了 SpringBoot,我们也可以在它的核心配置文件 application.properties 中,声明一下视图解析器。
#配置视图解析器
spring.mvc.view.prefix=/
spring.mvc.view.suffix=.jsp
之前,我们用IDEA创建web项目的时候,jsp都是存放在一个叫 webapp 的文件夹下,在这里我们仍然将jsp放在该文件夹下。
但是,我们创建一个完整的 SpringBoot 项目之后,目录结构中是没有 webapp 这个文件夹的,所以需要新建一个,同时对文件类型进行修改:👇👇👇
<%@ page contentType="text/html;charset=utf-8" language="java" %>
<html>
<head>
<title>$</title>
</head>
<body>
<h3>${msg}</h3>
</body>
</html>
下面我们来写一个 controller
package com.songzihao.springboot.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
/**
*
*/
@Controller
public class IndexController {
@RequestMapping(value = "/say")
public ModelAndView say() {
ModelAndView mv=new ModelAndView();
mv.addObject("msg","Hello , SpringBoot!!!");
mv.setViewName("result");
return mv;
}
@RequestMapping(value = "/speak")
public String speak(Model model) {
model.addAttribute("msg","Hello , World!!!");
return "result";
}
}
最后是 SpringBoot 的入口类
package com.songzihao.springboot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
测试一下结果: