Выпуск Thymeleaf 3. В новой версии появилось множество новых функций, таких как поддержка HTML5, а также поддержка текстовых шаблонов без разметки — [# th:utext="${thymeleaf.version}" /]
, улучшенные встроенные возможности — <p>Thymeleaf [[${thymeleaf.version}]] is great!</p>
, улучшения производительности и многое другое.
Самый простой способ начать работу с Thymeleaf 3 и Spring MVC — использовать Spring MVC 4 Quickstart Maven Archetype . Архетип был обновлен для поддержки Thymeleaf 3. Изменения, внесенные в архетип, описаны ниже.
зависимости
Проект использует Spring Platform BOM для управления зависимостями, но еще не (на момент написания этого поста) объявлял зависимость от Thymeleaf 3, поэтому мне нужно было объявлять версии вручную.
- Thymeleaf:
1
2
3
4
5
|
< dependency > < groupId >org.thymeleaf</ groupId > < artifactId >thymeleaf</ artifactId > < version >3.0.0.RELEASE</ version > </ dependency > |
- Тимелист весенний 4:
1
2
3
4
5
|
< dependency > < groupId >org.thymeleaf</ groupId > < artifactId >thymeleaf-spring4</ artifactId > < version >3.0.0.RELEASE</ version > </ dependency > |
- Thymeleaf Spring Security 4:
1
2
3
4
5
|
< dependency > < groupId >org.thymeleaf.extras</ groupId > < artifactId >thymeleaf-extras-springsecurity4</ artifactId > < version >3.0.0.RELEASE</ version > </ dependency > |
Приложение, созданное с помощью архетипа, использует Java 8 Time Dialect, и, поскольку API Thymeleaf изменился, зависимость от диалекта также должна быть обновлена. Прежде чем он станет доступен в Maven Central, мы должны добавить репозиторий снимков в POM:
1
2
3
4
5
6
7
8
|
< repository > < id >sonatype-nexus-snapshots</ id > < name >Sonatype Nexus Snapshots</ name > < snapshots > < enabled >true</ enabled > </ snapshots > </ repository > |
А затем объявите зависимость:
1
2
3
4
5
|
< dependency > < groupId >org.thymeleaf.extras</ groupId > < artifactId >thymeleaf-extras-java8time</ artifactId > < version >3.0.0-SNAPSHOT</ version > </ dependency > |
Изменения конфигурации
- Шаблон разрешения
Шаблон разрешения до:
1
2
3
4
5
6
7
8
9
|
@Bean public TemplateResolver templateResolver() { TemplateResolver resolver = new ServletContextTemplateResolver(); resolver.setPrefix(VIEWS); resolver.setSuffix( ".html" ); resolver.setTemplateMode( "HTML5" ); resolver.setCacheable( false ); return resolver; } |
Шаблон разрешения после:
1
2
3
4
5
6
7
8
9
|
@Bean public ITemplateResolver templateResolver() { SpringResourceTemplateResolver resolver = new SpringResourceTemplateResolver(); resolver.setPrefix(VIEWS); resolver.setSuffix( ".html" ); resolver.setTemplateMode(TemplateMode.HTML); resolver.setCacheable( false ); return resolver; } |
- Шаблонный движок
1
2
3
4
5
6
7
8
|
@Bean public SpringTemplateEngine templateEngine() { SpringTemplateEngine templateEngine = new SpringTemplateEngine(); templateEngine.setTemplateResolver(templateResolver()); templateEngine.addDialect( new SpringSecurityDialect()); templateEngine.addDialect( new Java8TimeDialect()); return templateEngine; } |
- Просмотр резолвера:
1
2
3
4
5
6
7
|
@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 Archetype
Ссылка: | Thymeleaf 3 — начните быстро с Thymeleaf 3 и Spring MVC от нашего партнера JCG Рафаля Боровца в блоге Codeleak.pl . |