具体的写完WebMvcConfigurerAdapter 的实现类如下:
package com.atguigu.springboot.config; import com.atguigu.springboot.component.MyLocaleResolver; import org.springframework.boot.context.embedded.ConfigurableEmbeddedServletContainer; import org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.LocaleResolver; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.ViewControllerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; //使用WebMvcConfigurerAdapter可以来扩展SpringMVC的功能 //@EnableWebMvc 不要接管SpringMVC @Configuration public class MyMvcConfig extends WebMvcConfigurerAdapter { @Override public void addViewControllers(ViewControllerRegistry registry) { // super.addViewControllers(registry); //浏览器发送 /atguigu 请求来到 success registry.addViewController("/atguigu").setViewName("success"); } //所有的WebMvcConfigurerAdapter组件都会一起起作用 @Bean //将组件注册在容器 public WebMvcConfigurerAdapter webMvcConfigurerAdapter(){ WebMvcConfigurerAdapter adapter = new WebMvcConfigurerAdapter() { @Override public void addViewControllers(ViewControllerRegistry registry) { registry.addViewController("/").setViewName("index"); registry.addViewController("/index.html").setViewName("index"); registry.addViewController("/main.html").setViewName("dashboard"); } //注册拦截器 @Override public void addInterceptors(InterceptorRegistry registry) { //super.addInterceptors(registry); //静态资源; *.css , *.js //SpringBoot已经做好了静态资源映射 // registry.addInterceptor(new LoginHandlerInterceptor()).addPathPatterns("/**") // .excludePathPatterns("/index.html","/","/user/login"); } }; return adapter; } @Bean public LocaleResolver localeResolver(){ return new MyLocaleResolver(); } }
这里面刚刚开始配置的当访问的时候 就报如下的错误:
这是因为
最终原因是thymeleaf的版本和springboot版本有冲突
后来最终改成的是:
<properties> <java.version>1.8</java.version> <!--下面两局指定thymeleaf的版本--> <!--布局功能的支持程序thymeleaf3主程序layout2以上版本 thymeLeaf2版本主程序和Layout1适配 Layout 是用来做布局功能扩展的 --> <thymeleaf.version>3.0.9.RELEASE</thymeleaf.version> ---这 是改为正确的后,也就是换了下dialect标签中的类型。 <thymeleaf-layout-dialect.version>2.3.0</thymeleaf-layout-dialect.version> <!-- <property> <thymeleaf.version>3.0.9.RELEASE</thymeleaf.version> ----这是最开始的dialect的版本,
<thymeleaf-layout-dialect.version>2.2.2</thymeleaf-layout-dialect.version> </property>--> </properties>