001package com.ganteater.ae.web; 002 003import java.io.File; 004 005import org.springframework.context.annotation.Bean; 006import org.springframework.context.annotation.Configuration; 007import org.springframework.web.servlet.config.annotation.EnableWebMvc; 008import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistration; 009import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; 010import org.springframework.web.servlet.config.annotation.ViewControllerRegistry; 011import org.springframework.web.servlet.config.annotation.ViewResolverRegistry; 012import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; 013import org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer; 014 015@Configuration 016@EnableWebMvc 017public class WebConfig implements WebMvcConfigurer { 018 019 private String webDir = "classpath:/web"; 020 021 public WebConfig() { 022 super(); 023 File webDir = new File("web"); 024 if (webDir.exists() && webDir.isDirectory()) { 025 this.webDir = "file:" + webDir.getAbsolutePath(); 026 } 027 } 028 029 @Override 030 public void configureViewResolvers(ViewResolverRegistry registry) { 031 registry.freeMarker(); 032 } 033 034 @Override 035 public void addResourceHandlers(ResourceHandlerRegistry registry) { 036 ResourceHandlerRegistration resourceHandler = registry.addResourceHandler("/**"); 037 resourceHandler.addResourceLocations(webDir + "/static/"); 038 } 039 040 @Override 041 public void addViewControllers(ViewControllerRegistry registry) { 042 registry.addViewController("/").setViewName("forward:/index.html"); 043 } 044 045 @Bean 046 public FreeMarkerConfigurer freeMarkerConfigurer() { 047 FreeMarkerConfigurer configurer = new FreeMarkerConfigurer(); 048 configurer.setTemplateLoaderPath(webDir + "/templates"); 049 configurer.setDefaultEncoding("UTF-8"); 050 return configurer; 051 } 052}