SpringBoot интегрирует Thymeleaf на основе версии SpringBoot2.X.

Spring Boot задняя часть

1. Зачем использовать шаблонизатор Thymeleaf? Теперь перед и зад не разделены?

Bear dei, не волнуйтесь, давайте поговорим о том, почему мы начали использовать шаблонизатор Thymeleaf, и сначала позаботимся о наших милых маленьких белых детских ботиночках...

Зачем начинать использовать механизм шаблонов Thymeleaf? Разве она не хороша в jsp?В первую очередь страницы, которые передал нам фронтенд, это html страницы.Если мы их разрабатывали раньше, то нам нужно конвертировать их в jsp страницы.Преимущество jsp в том, что когда мы узнаем какие-то данные и пересылаем их на страницы JSP, мы можем использовать jsp, чтобы легко реализовать отображение данных и взаимодействие. Jsp поддерживает очень мощные функции, в том числе возможность писать код Java... Да, сначала сделайте комплимент jsp.

Однако проект SpringBoot имеет форму jar, а не war, и SpringBoot по-прежнему использует встроенный Tomcat, так что теперь он не поддерживает jsp по умолчанию... Да, тогда дайте jsp наотмашь.

Он не поддерживает jsp.Если мы будем напрямую использовать чистые статические страницы, это принесет большие неприятности нашей разработке.Так что же нам делать?SpringBoot рекомендует использовать движок шаблонов. Существует множество типов шаблонизаторов, таких какThymeleaf,Velocity,FreeMarker, но идеи те же, по этому поводу можно не беспокоиться, springboot рекомендует использоватьThymeleaf, Конечно, в основном все программисты используют механизм шаблонов Thymeleaf, и механизм шаблонов Thymeleaf хорошо принят в отрасли.

Теперь перед и зад не разделены? Вью не ароматный, не так ли?Хотя разработка постепенно отделяется от передней и задней части популярности, все же есть некоторые“灵玩不灵”Компания по-прежнему занимается разработкой фронтенда и бэкенда, а при разработке фронтенда и бэкэнда нам понадобится движок шаблонов бэкэнд-страниц [на самом деле, даже если фронтенд и бэкэнд -end разделены, в некоторых сценариях необходимо будет использовать шаблоны страниц, для типичного каштана:邮件发送模板].

2. Предохранитель версий SpringBoot1.X и 2.X

С развитием науки и техники общество прогрессирует, компании работают, а программисты бурлят. Просыпайтесь, молодые люди, сейчас 2020 год, и вы неизбежно услышите или увидите онлайн-статьи, прежде чем сказать, что первым шагом является импорт пакета зависимостей шаблона Thymeleaf. разработка должна быть основана на 3.x, а затем напишите следующие две строки кода в теге свойств pom.xml

<thymeleaf.version>3.0.9.RELEASE</thymeleaf.version>		
<thymeleaf-layout-dialect.version>2.2.2</thymeleaf-layout-dialect.version>

Говорят, что для программы поддержки функции макета требуется основная программа thymeleaf3 и указанная выше версия layout2, то есть вручную перезаписать тимелеаф 3.x на 2.x в зависимости.

Сказав многое, я хочу сказать только одно: текущая версия в основном это тимелеаф3.х по умолчанию, а сейчас в 2020 году даже студенты в основном используют версию SpringBoot2.X. Если вы до сих пор пользуетесь SpringBoot1.X, то мы не подходим, вы хороший человек.

Если вы все еще не уверены, вы можете сделать следующее, чтобы проверить версию тимелеафа:

在这里插入图片描述

3. Версия SpringBoot2.X интегрирует Thymeleaf

Ну, я сказал (тяну) много, почему бы мне не исправить:

在这里插入图片描述
Учитывая вышесказанное, разные версии идеи могут выбирать разные версии SpringBoot. Это нормально. Жизненный совет: не гонитесь за последней версией, несмотря ни на что, вы кажетесь очень кожаным и высококлассным при ее использовании. Внешний вид также очень несдержанный ~ смущенный ~, я не буду здесь больше обрисовывать.

После проверки Thymeleaf после завершения создания зависимости pom.xml по умолчанию будут следующими:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

То есть, как и при импорте зависимостей Thymeleaf, нет необходимости импортировать снова. На этом можно сказать, что интеграция завершена.Далее давайте поговорим о мощных функциях Thymeleaf.

4. Рендеринг листьев тимьяна

Правила рендеринга Thymeleaf, вы можете найти его файл автоматической конфигурации, чтобы просмотреть его правила использования, следующим образом:

在这里插入图片描述
Ключевой код:

@ConfigurationProperties(prefix = "spring.thymeleaf")
public class ThymeleafProperties {
        private static final Charset DEFAULT_ENCODING = StandardCharsets.UTF_8;
        public static final String DEFAULT_PREFIX = "classpath:/templates/";
        public static final String DEFAULT_SUFFIX = ".html";
        private boolean checkTemplate = true;
        private boolean checkTemplateLocation = true;
        private String prefix = DEFAULT_PREFIX;
        private String suffix = DEFAULT_SUFFIX;
        private String mode = "HTML";
        private Charset encoding = DEFAULT_ENCODING;
        private boolean cache = true;
        //...

Проанализируйте исходный код, процесс выглядит следующим образом:

1. Первый проход@ConfigurationPropertiesПримечание, будетapplication.propertiesПрефиксspring.thymeleafКонфигурация привязана к свойствам этого класса.

 

2. Первые триstaticПеременные, определяющие формат кодировки по умолчанию, префикс анализатора представления, суффикс и т. д.

 

3. По конфигурации первых трех строк видно, что,ThymeleafРасположение шаблонов по умолчанию:resources/templatesкаталог>, суффикс по умолчаниюhtml.

 

Примечание: Для этих конфигураций, если они не предоставлены разработчиком, будут использоваться конфигурации по умолчанию.application.propertiesКитай и Израильspring.thymeleafНачните соответствующую настройку.

Да, вкратце правила по умолчанию таковы:

префикс по умолчанию:DEFAULT_PREFIX = "classpath:/templates/"

 

суффикс по умолчанию:DEFAULT_SUFFIX = ".html"

Это полностью похоже на сопоставление Spring MVC. Конечно, если вы хотите изменить эти конфигурации, вам нужно только переопределить изменения в глобальном файле конфигурации. Обычно мы не переопределяем их, если нет особых требований.

Следует также упомянуть, чтоКласс автоматической конфигурации, предоставляемый Spring Boot для Thymeleaf org.springframework.boot.autoconfigure.thymeleaf.ThymeleafAutoConfiguration, некоторые из основных исходных кодов:

@Configuration
@EnableConfigurationProperties(ThymeleafProperties.class)
@ConditionalOnClass({ TemplateMode.class, SpringTemplateEngine.class })
@AutoConfigureAfter({ WebMvcAutoConfiguration.class, WebFluxAutoConfiguration.class })
public class ThymeleafAutoConfiguration {
   //....
}

анализировать:

Как видно из исходного кода, в этом классе автоматической настройки сначала@EnableConfigurationPropertiesимпортировать ThymeleafProperties , затем@ConditionalOnClassВ аннотации указано, что текущий класс автоматической конфигурации вступит в силу только при наличии классов TemplateMode и SpringTemplateEngine в текущей системе, то есть до тех пор, пока в проект будут введены зависимости, связанные с Thymeleaf, эта конфигурация будет действовать.

Эти конфигурации по умолчанию можно использовать напрямую без каких-либо изменений. Если у вас есть особые потребности, вы можетеapplication.propertiesсконфигурировано сspring.thymeleafАтрибуты в начале можно настроить под себя.Конечно, для меня не может быть такой спрос.Если кто-то не хочет меня побить, вы хотите думать, что у меня будет такой спрос хобби. Если вам нужно изменить его, см.Официальная документация Springboot

5. Проверьте, успешна ли интеграция Thymeleaf

Да, вышеперечисленные действия может сделать каждый, только после успешного тестирования и интеграции Thymeleaf интеграция завершена, то есть на этом этапе будут вылезать ошибки по разным причинам.

Код контроллера

Сначала напишите код контроллера, мы не такие уж сложные, как демо может быть простым?

@Controller
public class HelloController {
    @GetMapping("/su")  
    public String success(){
        return "success";    //  相当于访问 classpath:/templates/success.html
    }
}

html код страницы

Напишите код страницы, обратите внимание на этот код страницы, чтобыclasspath:/templates/Под содержанием

在这里插入图片描述
код показывает, как показано ниже:

<!DOCTYPE html>
<html lang="en">  
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>整合Thymeleaf已经success哈哈哈哈</h1>

</body>
</html>

проверка доступа

доступhttp://localhost:8080/su

在这里插入图片描述
Приведенные выше результаты показывают, что интеграция прошла успешно.

6. Возможные проблемы с SpringBoot, интегрирующим Thymeleaf

在这里插入图片描述

Исключения такого типа очень распространены. Конкретная информация зависит от исключения. Например, говорится, что в маршрутизации страницы существует петля, что эквивалентно циклической ссылке. Возможно, имя пути доступа и адрес Имя HTML-файла совпадает. Попробуйте изменить путь запроса. .

В качестве другого примера ниже приведен общий вид информации о печати.

在这里插入图片描述
Вот краткое изложение причин исключений и решений:

1. Неправильное расположение класса запуска приложения: чтобы поместить класс приложения на самую внешнюю сторону, то есть включить все подпакеты, spring-boot автоматически загрузит все компоненты в пакете, где находится класс запуска и его подпакеты. . Если класс запуска не размещен на самой внешней стороне, будет сообщено об ошибке. Правильное расположение выглядит следующим образом:

在这里插入图片描述
2. Конфигурационный файл springboot неверен: оapplication.ymlилиapplication.propertiesПроблема конфигурации с преобразователем представлений в файле. существуетpomпод файломspring-boot-starter-paren

Используйте конфигурацию, когда версия выше: Spring.mvc.view.prefix / Spring.mvc.view.sifix Используйте конфигурацию, когда версия ниже: Spring.View.prefix / Spring.View.sifix

3. URL-адрес доступа к контроллеру не соответствует аннотации @XXXMapping ("/xxxx"), как показано на следующем рисунке:

在这里插入图片描述
4.Последняя причина особенно жалкая.Вы обнаружите,что выполнили все вышеперечисленное,но все равно сообщаете об ошибке.Это удивительно.На самом деле,это причина,по которой я все утро был в яме----версия слишком высокая. Может быть, вы скажете, что выбор идеи по умолчанию - 2.1.X и выше, и в принципе нет нужной версии. На самом деле это не большая проблема. На самом деле вы можете изменить его в pom.xml следующим образом:
在这里插入图片描述
Если в этом процессе есть что-то ненормальное, что заставляет вас чувствовать страх, помните, лучший способ побороть страх — это встретиться с ним лицом к лицу, проснуться, молодой человек, гяо ме, гяогяо. ...Оли дай! ! !

Если эта статья хоть немного вам поможет, то ставьте лайк, спасибо~

Наконец, если есть какие-либо недостатки или неточности, добро пожаловать на исправления и критику, большое спасибо! Если у вас есть какие-либо вопросы, пожалуйста, оставьте сообщение и ответьте как можно скорее!

Приглашаю всех обратить внимание на мою официальную учетную запись, там есть некоторые учебные материалы по Java и большая волна электронных книг по Java, таких как всесторонняя виртуальная машина Java г-на Чжоу Чжимина, идеи программирования Java, объемы основных технологий, большой разговор о дизайне. паттерны, борьба с параллельным программированием на Java... .. Это все библия Java, не говоря уже о том, чтобы садиться в машину Tomcat, поехали! Самое главное - вместе обсуждать технологии, тосковать по технологиям, заниматься технологиями, и когда это согласовано, это друг горшка ...

在这里插入图片描述
Ссылаться на:

Официальная документация SpringBoot:docs.spring.IO/весенняя загрузка…

Вухуу. ИМО OC.com/article/293…

blog.CSDN.net/Как зовут/ах…