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整合Swagger报错:“this.condition“ is null