WebMvcConfigurer

我们常常会创建一个config包 ,在这个包里面新建一个MyMvcConfig类,这个类实现WebMvcConfigurer接口,并且重写这个接口里面的方法

这个接口里面的常用方法:


public interface WebMvcConfigurer
{
    /* 拦截器配置 */
   void addInterceptors(InterceptorRegistry var1);

   /* 视图跳转控制器 */
   void addViewControllers(ViewControllerRegistry registry);

   /*静态资源处理*/
   void addResourceHandlers(ResourceHandlerRegistry registry);

   /* 默认静态资源处理器 */
   void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer);

   /*这里配置视图解析器*/
   void configureViewResolvers(ViewResolverRegistry registry);
   
   /* 配置内容裁决的一些选项*/
   void configureContentNegotiation(ContentNegotiationConfigurer configurer);

   /** 解决跨域问题 **/
   public void addCorsMappings(CorsRegistry registry) ;

}

1. 设置拦截器:

public class MyMvcConfig implements WebMvcConfigurer
{
   

    @Override
    public void addInterceptors(InterceptorRegistry registry)
    {
        registry.addInterceptor(new myHandlerInterceptor())
                .addPathPatterns("/**")
                .excludePathPatterns("/index.html","/","/user/login","/css/**","/js/**","/img/**");
    }
}
  • addInterceptor:需要传入一个实现HandlerInterceptor接口的拦截器实例
  • addPathPatterns:用于设置拦截器的过滤路径规则;addPathPatterns("/**")对所有请求都拦截,如果写addPathPatterns("/abc"),那就只对/abc开头的路径进行拦截
  • excludePathPatterns:用于设置不需要拦截的过滤规则,比如/user/login路径本来就是请求登录,就不用拦截

常用来实现效果:用户想访问一个页面,先检查用户是否已经登录,如果没有登陆,就会提示你还没有登录,需要先登录,并返回登陆页面

 2.页面跳转:

public class MyMvcConfig implements WebMvcConfigurer
{
       @Override
       public void addViewControllers(ViewControllerRegistry registry)
       {
          registry.addViewController("/toLogin").setViewName("login");
          //也就是说在浏览器中输入localhost:8080/toLogin会跳转到login.html页面
       }
}

3.跨域:

public class MyMvcConfig implements WebMvcConfigurer
{
    @Override
    public void addCorsMappings(CorsRegistry registry) 
    {
        super.addCorsMappings(registry);
        registry.addMapping("/cors/**")
                .allowedHeaders("*")
                .allowedMethods("POST","GET")
                .allowedOrigins("*");
     }
}

4.视图解析器

public class MyMvcConfig implements WebMvcConfigurer
{ 
    /**
       * 配置请求视图映射
       * @return
     */
     @Bean
     public InternalResourceViewResolver resourceViewResolver() 
     {
	     InternalResourceViewResolver internalResourceViewResolver = new InternalResourceViewResolver();
      	
        //请求视图文件的前缀地址
 	    internalResourceViewResolver.setPrefix("/WEB-INF/jsp/");
	    
        //请求视图文件的后缀
	    internalResourceViewResolver.setSuffix(".jsp");

	    //最后的地址就是前缀地址+视图文件的地址+后缀地址
        return internalResourceViewResolver;
      }
 
      /**
      * 视图配置
      * @param registry
      */
      @Override
      public void configureViewResolvers(ViewResolverRegistry registry)
      {
	      super.configureViewResolvers(registry);
	      registry.viewResolver(resourceViewResolver());
	     /*registry.jsp("/WEB-INF/jsp/",".jsp");*/
      }
}

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值