自定義視圖映射可以解決這個問題,默認情況下template中的靜態頁面無法直接通過URL訪問,需要通過controller的跳轉,定義映射之后,可以將直接訪問的URL映射成類似controller的跳轉功能。
//擴展配置功能
@Configuration
public class MyConfigMvc extends WebMvcConfigurerAdapter {
//所有的WebMvcConfigurerAdapter組件都會一起起作用
@Bean //將組件注冊在容器
public WebMvcConfigurerAdapter webMvcConfigurerAdapter(){
WebMvcConfigurerAdapter adapter = new WebMvcConfigurerAdapter() {
/*視圖映射功能*/
@Override
public void addViewControllers(ViewControllerRegistry registry) {
//視圖映射:瀏覽器發送"/"請求,會來到index頁面(thymeleaf解析的頁面),
registry.addViewController("/").setViewName("/index");
registry.addViewController("/index.html").setViewName("/index");
registry.addViewController("/home.html").setViewName("/index");
//配置springboot直接訪問靜態html頁面,不經過controller
//配置之后,發送/loginAndRegister.html,就相當於在controller中return "loginAndRegister"
registry.addViewController("/loginAndRegister.html").setViewName("/loginAndRegister");
}
};
return adapter;
}
}
