diff --git a/pom.xml b/pom.xml index d3920cd..fbb1a8a 100644 --- a/pom.xml +++ b/pom.xml @@ -102,6 +102,11 @@ spring-webmvc ${spring.version} + + org.springframework + spring-context-support + ${spring.version} + @@ -130,6 +135,11 @@ lombok 1.16.16 + + org.freemarker + freemarker + 2.3.23 + diff --git a/src/main/java/kinosearch/kinosearch3/webpp/SpringConfig.java b/src/main/java/kinosearch/kinosearch3/webpp/SpringConfig.java index 77d17b6..ba6af97 100644 --- a/src/main/java/kinosearch/kinosearch3/webpp/SpringConfig.java +++ b/src/main/java/kinosearch/kinosearch3/webpp/SpringConfig.java @@ -8,6 +8,9 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.PropertySource; +import org.springframework.web.servlet.ViewResolver; +import org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer; +import org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver; @Configuration @PropertySource("classpath:/application.properties") @@ -16,4 +19,19 @@ public class SpringConfig { public WebApp webapp(@Value("${webapp.host}") String host, @Value("${webapp.port}") int port) { return new WebApp(host, port); } + + @Bean + public ViewResolver viewResolver() { + FreeMarkerViewResolver viewResolver = new FreeMarkerViewResolver(); + viewResolver.setCache(true); + viewResolver.setSuffix(".ftl"); + return viewResolver; + } + + @Bean + public FreeMarkerConfigurer freemarkerConfig() { + FreeMarkerConfigurer freeMarkerConfigurer = new FreeMarkerConfigurer(); + freeMarkerConfigurer.setTemplateLoaderPath("classpath:/kinosearch/kinosearch3/webpp/"); + return freeMarkerConfigurer; + } } \ No newline at end of file diff --git a/src/main/java/kinosearch/kinosearch3/webpp/WebAppController.java b/src/main/java/kinosearch/kinosearch3/webpp/WebAppController.java index 00fa0d2..68b75c7 100644 --- a/src/main/java/kinosearch/kinosearch3/webpp/WebAppController.java +++ b/src/main/java/kinosearch/kinosearch3/webpp/WebAppController.java @@ -4,16 +4,30 @@ */ package kinosearch.kinosearch3.webpp; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; @Controller public class WebAppController { + private final Logger logger = LoggerFactory.getLogger(WebAppController.class); + @RequestMapping(value = "/", method = RequestMethod.GET) - @ResponseBody public String hello() { - return "hello...?"; + return "index"; + } + + @RequestMapping(value = "/favicon.ico") + public void favicon(HttpServletResponse response) { + try { + response.sendError(404); + } catch (IOException e) { + logger.error("favicon 404", e); + } } } diff --git a/src/main/resources/kinosearch/kinosearch3/webpp/index.ftl b/src/main/resources/kinosearch/kinosearch3/webpp/index.ftl new file mode 100644 index 0000000..4a46811 --- /dev/null +++ b/src/main/resources/kinosearch/kinosearch3/webpp/index.ftl @@ -0,0 +1,8 @@ +[#ftl] + + + + +

KinoSearch 3.0.0-alpha

+ + \ No newline at end of file