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}