一.Spring MVC视图解析器
Spring MVC 的视图解析器作用是定位视图,也就是当我们开发的控制器只是返回一个逻辑名称的时候,是没有办法找到对应的视图的,这就需要视图解析器进行解析器进行视图解析了。在实际的开发中,运用的最多的视图之一就是JSP。
其实采用JSP已经算是很繁琐的了,直接用模板引擎或者Vue更好,后期将会做主要介绍。
二.新增JSP和JSTL的maven依赖配置
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<scope>provided</scope>
</dependency>
导入成功即可。
三.配置视图前后缀
视图前后缀由我们的Springboot约定的,它会通过找到文件夹/WEB-INF/webapp/jsp/
下的.jsp文件,我们的文件名可以自定义,通过一个控制器进行自定义和跳转。
我们可以自定义端口号,jsp文件存放位置。
server.port=8080
spring.mvc.view.prefix=/WEB-INF/webapp/jsp/
spring.mvc.view.suffix=.jsp
PS:
我们的jsp
和webapp
文件目录结构存放是有讲究的,我一开始弄错了,所以找了半天bug。
目录结构如图3-1:
我们的webapp
文件夹和resources
文件同级目录的,其中创建webapp
的过程如下:
在这里命名好我们的weapp
名称:
四.开发控制器
我们开发控制器的目的是返回一个逻辑名称index,与之前配置的前后缀结合起来找到我们对应的index.jsp文件。而访问这个控制器是通过映射/index
的路径进行访问的。
package com.example.demo;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
//开发控制器
public class IndexController {
@RequestMapping("/index")
public String index(){
return "index";
}
}
五.开发视图
写进我们的index.jsp文件中:
<%--
Created by IntelliJ IDEA.
User: linghu
Date: 2020/5/23
Time: 15:02
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>SpringBoot 视图解析器</title>
</head>
<body>
<h1>测试视图解析器</h1>
</body>
</html>
这样我们就完成了一个简单的控制器,并且让视图解析器找到视图的功能。