Skip to content

Instantly share code, notes, and snippets.

@lynas
Last active May 22, 2016 12:19
Show Gist options
  • Save lynas/aebd2885e700bde2cdc20b3e976c8966 to your computer and use it in GitHub Desktop.
Save lynas/aebd2885e700bde2cdc20b3e976c8966 to your computer and use it in GitHub Desktop.
Spring mvc thymeleaf with kotlin
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.2.4.RELEASE</version>
</dependency>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<version>7.0</version>
<scope>provided</scope><!--provided by the container-->
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib</artifactId>
<version>${kotlin.version}</version>
</dependency>
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf-spring4</artifactId>
<version>2.1.4.RELEASE</version>
</dependency>
<dependency>
<groupId>nz.net.ultraq.thymeleaf</groupId>
<artifactId>thymeleaf-layout-dialect</artifactId>
<version>1.2.9</version>
</dependency>
<dependency>
<groupId>com.github.mxab.thymeleaf.extras</groupId>
<artifactId>thymeleaf-extras-data-attribute</artifactId>
<version>1.3</version>
</dependency>
</dependencies>
@Configuration
@EnableWebMvc
@ComponentScan("com.lynas")
open class WebConfig {
@Bean
open fun templateResolver(): ServletContextTemplateResolver {
val resolver = ServletContextTemplateResolver()
resolver.prefix = "/"
resolver.suffix = ".html"
resolver.templateMode = "HTML5"
resolver.isCacheable = false // make it true before release
return resolver
}
@Bean
open fun templateEngine(): SpringTemplateEngine {
val dialects = HashSet<IDialect>()
dialects.add(LayoutDialect())
val engine = SpringTemplateEngine()
engine.setTemplateResolver(templateResolver())
engine.setAdditionalDialects(dialects)
engine.addDialect(DataAttributeDialect())
return engine
}
@Bean
open fun viewResolver(): ThymeleafViewResolver {
val resolver = ThymeleafViewResolver()
resolver.templateEngine = templateEngine()
resolver.order = 1
resolver.viewNames = arrayOf("*", "js/*", "template/*")
return resolver
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment