Thymeleaf 3发布到达。 新版本带来了许多新功能,例如HTML5支持以及不带标记的文本模板支持– [# th:utext="${thymeleaf.version}" /]
,改进的内联功能– <p>Thymeleaf [[${thymeleaf.version}]] is great!</p>
,性能改进等等。
使用Thymeleaf 3和Spring MVC入门的最简单方法是使用Spring MVC 4 Quickstart Maven Archetype 。 已更新原型以支持Thymeleaf3。下面将描述对原型所做的更改。
依存关系
该项目使用Spring Platform BOM进行依赖关系管理,但是(在撰写本文时)尚未声明对Thymeleaf 3的依赖关系,因此我需要手动声明版本。
- 胸腺
<dependency><groupId>org.thymeleaf</groupId><artifactId>thymeleaf</artifactId><version>3.0.0.RELEASE</version>
</dependency>
- Thymeleaf Spring 4:
<dependency><groupId>org.thymeleaf</groupId><artifactId>thymeleaf-spring4</artifactId><version>3.0.0.RELEASE</version>
</dependency>
- Thymeleaf Spring Security 4:
<dependency><groupId>org.thymeleaf.extras</groupId><artifactId>thymeleaf-extras-springsecurity4</artifactId><version>3.0.0.RELEASE</version>
</dependency>
使用原型生成的应用程序使用Java 8时间方言,并且由于Thymeleaf API已更改,因此方言依赖项也必须更新。 在Maven Central中将其可用之前,我们必须将快照存储库添加到POM:
<repository><id>sonatype-nexus-snapshots</id><name>Sonatype Nexus Snapshots</name><url>https://oss.sonatype.org/content/repositories/snapshots</url><snapshots><enabled>true</enabled></snapshots>
</repository>
然后声明依赖项:
<dependency><groupId>org.thymeleaf.extras</groupId><artifactId>thymeleaf-extras-java8time</artifactId><version>3.0.0-SNAPSHOT</version>
</dependency>
配置变更
- 模板解析器
之前的模板解析器:
@Bean
public TemplateResolver templateResolver() {TemplateResolver resolver = new ServletContextTemplateResolver();resolver.setPrefix(VIEWS);resolver.setSuffix(".html");resolver.setTemplateMode("HTML5");resolver.setCacheable(false);return resolver;
}
之后的模板解析器:
@Bean
public ITemplateResolver templateResolver() {SpringResourceTemplateResolver resolver = new SpringResourceTemplateResolver();resolver.setPrefix(VIEWS);resolver.setSuffix(".html");resolver.setTemplateMode(TemplateMode.HTML);resolver.setCacheable(false);return resolver;
}
- 模板引擎
@Bean
public SpringTemplateEngine templateEngine() {SpringTemplateEngine templateEngine = new SpringTemplateEngine();templateEngine.setTemplateResolver(templateResolver());templateEngine.addDialect(new SpringSecurityDialect());templateEngine.addDialect(new Java8TimeDialect());return templateEngine;
}
- 查看解析器:
@Bean
public ViewResolver viewResolver() {ThymeleafViewResolver thymeleafViewResolver = new ThymeleafViewResolver();thymeleafViewResolver.setTemplateEngine(templateEngine());thymeleafViewResolver.setCharacterEncoding("UTF-8");return thymeleafViewResolver;
}
范本
模板在该项目中未更改。 但是,如果要迁移实际项目,则可能对阅读迁移指南感兴趣。
参考文献
- Thymeleaf 3发布信息
- Thymeleaf 3迁移指南
- Spring MVC 4快速入门Maven原型
翻译自: https://www.javacodegeeks.com/2016/05/thymeleaf-3-get-started-quickly-thymeleaf-3-spring-mvc.html