Spring Boot中Spring MVC的整合支持

Posted qq_48838980

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring Boot中Spring MVC的整合支持相关的知识,希望对你有一定的参考价值。

一、创建项目文件

在这里插入图片描述

  • 添加依赖
    在这里插入图片描述

二、将上一讲的复制过来

在这里插入图片描述

三、写MVC配置文件,定义视图跳转

1、注释掉控制器

在这里插入图片描述

2、创建自定义mvc配置类,实现自动跳转

在这里插入图片描述

package net.zjs.lesson11.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistration;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * 功能:自定义mvc配置类
 * 作者:zjs
 * 日期:2021-05-26
 */
@Configuration //配置类(交于spring容器管理)
public class MyMvcConfig implements WebMvcConfigurer {
    /*
    * 添加视图控制器
    * */

    @Override
    public void addViewControllers(ViewControllerRegistry registry){
        //当通过login.html访问时,直接跳转到login逻辑视图对应的页面,即login.html页面
        registry.addViewController("login.html").setViewName("login");
        //通过toLoginPage访问时,也直接跳转到login逻辑属兔对应的页面,即login.html页面
        registry.addViewController("toLoginPage").setViewName("login");
    }

}


3、修改登录页面

在这里插入图片描述

4、运行测试

  • 访问http://localhost:8080/toLoginPage
    在这里插入图片描述
  • 访问http://localhost:8080/login.html

在这里插入图片描述

四、编写拦截器

  • 让登录页面显示年份

1、创建自定义拦截器

在这里插入图片描述

package net.zjs.lesson11.interceptor;

import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Calendar;

/**
 * 功能:自定义拦截器
 * 作者:zjs
 * 日期:2021-05-26
 */
@Component
public class Myinterceptor implements HandlerInterceptor {
    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response,
                           Object handler, ModelAndView modelAndView) throws Exception{

        request.setAttribute("currentYear", Calendar.getInstance().get(Calendar.YEAR));
    }
}

2、在自定义MVC配置类里加载自定义拦截器

在这里插入图片描述

3、修改登录页面

在这里插入图片描述

  • 编译会报错,说无法解析currentYear,不用管它,因为数据不是来自控制器,而是来自拦截器,要运行时请求后才能获取数据,因此编译会报错。

4、运行测试

在这里插入图片描述

五、编写登录拦截器,防止非登录用户查看全部用户信息

1、还原登录控制器中的toLoginPage方法的注解

在这里插入图片描述

2、在自定义MVC配置中注释掉相应的视图控制器

在这里插入图片描述

3、在登录控制里修改login()方法

在这里插入图片描述

以上是关于Spring Boot中Spring MVC的整合支持的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot 整合web层之JSON的使用

Spring Boot框架的搭建

spring boot怎么支持https

Spring Boot整合Swagger报错:“this.condition“ is null

Spring Boot整合Swagger报错:“this.condition“ is null

Spring Boot整合Swagger报错:“this.condition“ is null