发布于2021-05-29 22:10 阅读(1264) 评论(0) 点赞(20) 收藏(5)
一、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()方法,加载自定义拦截器
修改登录页面,取消显示年份的注释
原文链接:https://blog.csdn.net/Lydialhf/article/details/117298476
作者:举起你的手来
链接:http://www.javaheidong.com/blog/article/207468/0a9608b5bba17cbb9267/
来源:java黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 java黑洞网 All Rights Reserved 版权所有,并保留所有权利。京ICP备18063182号-2
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!