2021-5-26:Spring MVC的整合支持

本文介绍了如何在SpringBoot项目中利用SpringMVC的自动化配置,包括内置视图解析器、静态资源支持和Web配置。还展示了如何自定义MVC配置,添加视图映射及拦截器,以实现在登录页面显示年份。
摘要由CSDN通过智能技术生成

Spring MVC的整合支持

一、Spring MVC 自动配置
(一)自动配置概述
在Spring Boot项目中,一旦引入了Web依赖启动器spring-boot-starter-web,那么Spring Boot整合Spring MVC框架默认实现的一些XxxAutoConfiguration自动配置类就会自动生效,几乎可以在无任何额外配置的情况下进行Web开发。

(二)Spring Boot整合Spring MVC 的自动化配置功能特性
内置了两个视图解析器:ContentNegotiatingViewResolver和BeanNameViewResolver;
支持静态资源以及WebJars;
自动注册了转换器和格式化器;
支持Http消息转换器;
自动注册了消息代码解析器;
支持静态项目首页index.html;
支持定制应用图标favicon.ico;
自动初始化Web数据绑定器ConfigurableWebBindingInitializer。

创建Spring Boot项目 - SpringMvcDemo2021
使用Spring Initializr方式创建Spring Boot项目,并在Dependencies依赖选择中选择Web依
在这里插入图片描述

在这里插入图片描述
改造当前项目 - 移植上一讲项目的内容
在这里插入图片描述
启动应用,查看是否成功
在这里插入图片描述
访问登录页面 - http://localhost:8080/toLoginPage
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
写MVC配置文件,定义视图跳转
1、注释掉控制器LoginController的toLoginPage()方法上的注解
在这里插入图片描述
实现接口WebMvcConfigurer,并重写addViewControllers方法
在这里插入图片描述
在这里插入图片描述

package net.lhf.lesson11.config;


import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import sun.misc.Contended;

/**
 * 功能:自定义MVC配置
 * 作者:李红芙
 * 日期:2021年05月26日
 */
@Configuration //配置类
public class MyMvcConfig implements WebMvcConfigurer {
    /**
     * 添加视图控制器
     * @param registry
     */
    @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");
    }
}

修改登录页面,注释掉显示年份的代码

在这里插入图片描述

启动应用,测试效果
访问http://localhost:8080/toLoginPage
在这里插入图片描述
访问http://localhost:8080/login.html
在这里插入图片描述
编写拦截器,让登录页面显示年份
1、实现接口HandlerInterceptor,并实现postHandle()方法
在这里插入图片描述

package net.lhf.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;

/**
 * 功能:自定义拦截器
 * 作者:李红芙
 * 日期: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));
    }
}

在MyMvcConfig重写addInterceptors()方法,加载自定义拦截器
在这里插入图片描述
修改登录页面,取消显示年份的注释
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值