Шаблонизаторы - это инструменты, которые позволяют создавать динамические страницы веб-приложений. В Spring Boot существует несколько шаблонизаторов, но в этом ответе мы рассмотрим два из них - Thymeleaf и Freemarker.
Thymeleaf - это шаблонизатор, который использует HTML в качестве основного языка разметки. Он позволяет создавать динамические страницы, добавляя в HTML специальные атрибуты и выражения. Например, чтобы вывести значение переменной на страницу, можно использовать следующий код:
html
<p th:text="${message}"></p>
В этом примере мы используем атрибут "th:text", чтобы указать, что содержимое тега "p" должно быть равно значению переменной "message". А переменная "message" передается в шаблон через модель данных.
Чтобы использовать Thymeleaf в Spring Boot, нужно добавить зависимость в файл "pom.xml" и настроить конфигурацию. Вот пример конфигурации:
java
@Configuration
public class ThymeleafConfig {
@Bean
public SpringTemplateEngine templateEngine() {
SpringTemplateEngine templateEngine = new SpringTemplateEngine();
templateEngine.setTemplateResolver(templateResolver());
return templateEngine;
}
@Bean
public ThymeleafViewResolver viewResolver() {
ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
viewResolver.setTemplateEngine(templateEngine());
return viewResolver;
}
@Bean
public ITemplateResolver templateResolver() {
ClassLoaderTemplateResolver templateResolver = new ClassLoaderTemplateResolver();
templateResolver.setPrefix("templates/");
templateResolver.setSuffix(".html");
templateResolver.setTemplateMode(TemplateMode.HTML);
return templateResolver;
}
}
В этом примере мы создаем три бина - "templateEngine", "viewResolver" и "templateResolver". "templateEngine" отвечает за обработку шаблонов, "viewResolver" - за поиск и отображение шаблонов, а "templateResolver" - за настройку путей и формата файлов шаблонов.
Freemarker - это еще один шаблонизатор, который использует свой собственный язык разметки. Он позволяет создавать динамические страницы, используя выражения вида "${...}". Например, чтобы вывести значение переменной на страницу, можно использовать следующий код:
html
<p>${message}</p>
В этом примере мы используем выражение "${message}", чтобы указать, что содержимое тега "p" должно быть равно значению переменной "message". А переменная "message" передается в шаблон через модель данных.
Чтобы использовать Freemarker в Spring Boot, нужно добавить зависимость в файл "pom.xml" и настроить конфигурацию. Вот пример конфигурации:
java
@Configuration
public class FreemarkerConfig {
@Bean
public FreeMarkerConfigurer freeMarkerConfigurer() {
FreeMarkerConfigurer freeMarkerConfigurer = new FreeMarkerConfigurer();
freeMarkerConfigurer.setTemplateLoaderPath("classpath:/templates/");
return freeMarkerConfigurer;
}
@Bean
public ViewResolver viewResolver() {
FreeMarkerViewResolver viewResolver = new FreeMarkerViewResolver();
viewResolver.setCache(true);
viewResolver.setPrefix("");
viewResolver.setSuffix(".ftl");
viewResolver.setContentType("text/html;charset=UTF-8");
return viewResolver;
}
}
В этом примере мы создаем два бина - "freeMarkerConfigurer" и "viewResolver". "freeMarkerConfigurer" отвечает за настройку путей и формата файлов шаблонов, а "viewResolver" - за поиск и отображение шаблонов.
Надеюсь, эти примеры помогли вам понять, как использовать шаблонизаторы Thymeleaf и Freemarker в Spring Boot для создания динамических страниц.