Для чего нужен thymeleaf
Русские Блоги
Spring Boot шаблонный движок интеграции Thymeleaf
Spring Boot Шаблонный движок Thymeleaf для интеграции
1. Введение Thymeleaf
Во-вторых, основное использование Thymeleaf
Посредством тегов + выражений данные и шаблон объединяются и, наконец, преобразуются в HTML-код, который возвращается пользователю.
Основное использование Thymeleaf делится на 2 части:
1. Использование тегов
1.1 th: вывод основной информации о тексте
html >
html xmlns: th = «http://www.thymeleaf.org» >
head >
meta charset= «UTF-8» >
title > Блог Фен Сюэчао title >
head >
body >
span th :text= «$
body >
html >
package com.littlefxc.blog.controller;
import org.springframework.stereotype. Controller ;
import org.springframework.web.bind.annotation. RequestMapping ;
import org.springframework.web.servlet.ModelAndView;
/**
* @author fengxuechao
*/
@Controller
public class IndexController <
1.2 th: вывод utxt html контента
Используйте «th: text» для вывода содержимого как есть, а «th: utext» для вывода тегов html.
package com.littlefxc.blog.controller;
import org.springframework.stereotype. Controller ;
import org.springframework.web.bind.annotation. RequestMapping ;
import org.springframework.web.servlet.ModelAndView;
/**
* @author fengxuechao
*/
@Controller
public class IndexController <
html >
html xmlns: th = «http://www.thymeleaf.org» >
head >
meta charset= «UTF-8» >
title > Блог Фен Сюэчао title >
head >
body >
p th :utext= «$
body >
html >
1.3 th: if, th: если только условие не определено
1.4 th: switch, th: case multi-condition суждение
Примечание:Параметр по умолчанию указывается с помощью th: case = «*».
1,5-й: каждый цикл
html >
html xmlns: th = «http://www.thymeleaf.org» >
head >
meta charset= «UTF-8» >
title > Блог Фен Сюэчао title >
head >
body >
div th :each= «name,item:$
span th :text= «$
span th :text= «$
div >
body >
html >
package com.littlefxc.blog.controller;
import org.springframework.stereotype. Controller ;
import org.springframework.web.bind.annotation. RequestMapping ;
import org.springframework.web.servlet.ModelAndView;
import java.util.Arrays;
/**
* @author fengxuechao
*/
@Controller
public class IndexController <
Эффект от посещения выглядит следующим образом:
1.6 Th: фрагмент, th: вставить, th: заменить, th: включить повторное использование фрагмента кода
Footer.html код страницы:
html >
html xmlns: th = «http://www.thymeleaf.org» >
head >
meta charset= «UTF-8» >
title > Title title >
head >
body >
div th :fragment= «copyright» >
© Авторские права принадлежат Фэн Сюэчао
div >
div th :fragment= «about» >
на
div >
div th :fragment= «links» >
CCTV
div >
body >
html >
Было объявлено три фрагмента кода, авторское право, о и ссылки.
Index.html код страницы:
html >
html xmlns: th = «http://www.thymeleaf.org» >
head >
meta charset= «UTF-8» >
title > Блог Фен Сюэчао title >
head >
body >
div th :replace= «footer :: copyright» > div >
div th :insert= «footer :: about» > div >
div th :include= «footer :: links» > div >
body >
html >
Первый div ссылается на фрагмент кода авторского права footer.html, а второй div ссылается на фрагмент кода about footer.html.
Понимание двойной двоеточия:Двойное двоеточие «::» используется для ссылки на фрагмент страницы, что немного похоже на синтаксис в PHP. Двойное двоеточие используется для указания прямой ссылки на статические свойства и методы класса.
Эффект заключается в следующем:
Краткое описание:Хорошо видно, что разница между th: insert, th: replace и th: include заключается в том, сохранять ли собственную основную метку. Th: include устарела после 3.0. Вместо нее можно использовать th: replace label.
продвинутый—— Параметр передачи кода фрагмента
Используя фрагмент, мы можем передавать параметры в html-коде. Например, мы определяем top.html, который содержит приглашение «Welcome XXX», и это имя человека XXX необходимо передавать динамически, чтобы мы могли завершить код в максимальной степени Повторно используйте, на этот раз хороший вариант использования, мы должны это сделать. (Красный указывает код клавиши)
Код страницы index.html:
html >
html xmlns: th = «http://www.thymeleaf.org» >
head >
meta charset= «UTF-8» >
title > Блог Фен Сюэчао title >
head >
body >
div th :each= «name,item:$
span th :text= «$
span th :text= «$
div >
div th :replace= «footer :: copyright» > div >
div th :insert= «footer :: about» > div >
div th :include= «footer :: links» > div >
div th:replace=»footer :: welcome(‘ Фэн Сюэчао ‘)» > div >
body >
html >
html >
html xmlns: th = «http://www.thymeleaf.org» >
head >
meta charset= «UTF-8» >
title > Title title >
head >
body >
div th :fragment= «copyright» >
© Авторские права принадлежат Фэн Сюэчао
div >
div th :fragment= «about» >
на
div >
div th :fragment= «links» >
CCTV
div >
1.7-й: с определением локальных переменных
Код страницы: (красный обозначает код ключа)
html >
html xmlns: th = «http://www.thymeleaf.org» >
head >
meta charset= «UTF-8» >
title > Блог Фен Сюэчао title >
head >
body >
div th :each= «name,item:$
span th :text= «$
span th :text= «$
div >
div th :replace= «footer :: copyright» > div >
div th :insert= «footer :: about» > div >
div th :include= «footer :: links» > div >
div th :replace= «footer :: welcome(‘ Фэн Сюэчао ‘)» > div >
div >
p th:with=»temp=’ Это локальная переменная ‘» > Локальные переменные: [[$
div >
body >
html >
1.8 th: удалить удалить тег
th: remove используется для удаления HTML-кода. Есть пять th: remove values:
Пример кода index.html выглядит следующим образом: (красный обозначает код ключа)
html >
html xmlns: th = «http://www.thymeleaf.org» >
head >
meta charset= «UTF-8» >
title > Блог Фен Сюэчао title >
head >
body >
div th :each= «name,item:$
span th :text= «$
span th :text= «$
div >
div th :replace= «footer :: copyright» > div >
div th :insert= «footer :: about» > div >
div th :include= «footer :: links» > div >
div th :replace= «footer :: welcome(‘ Фэн Сюэчао ‘)» > div >
div >
p th :with= «temp=’ Это локальная переменная ‘» > Локальные переменные: [[$
div >
div >
div th:remove=»all» >
span > all span >
span > 1 span >
div >
div th:remove=»body» >
span > body span >
span > 2 span >
div >
div th:remove=»tag» >
span > tag span >
span > 3 span >
div >
div th:remove=»all-but-first» >
span > all-but-first span >
span > 4 span >
div >
div th:remove=»none» >
span > none span >
span > 5 span >
div >
div >
body >
html >
Окончательный эффект отображения выглядит следующим образом:
1.9 Другие ярлыки
2. Использование выражения
2.1 Резюме выражений
2.1.1 Простые выражения
2.1.2 Типы данных
2.1.3 Текстовые операции
2.1.4 Арифметические операции
2.1.5 Булевы операции
Бинарные операторы: и, или логическое отрицание (унарный оператор). False
2.1.6 Условные операторы
Значение сравнения:>, =, package com.littlefxc.blog.controller;
import lombok. Data ;
import org.springframework.stereotype. Controller ;
import org.springframework.web.bind.annotation. RequestMapping ;
import org.springframework.web.servlet.ModelAndView;
import java.util.Arrays;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
/**
* @author fengxuechao
*/
@Controller
public class IndexController <
@Data
public static class Goods <
private String name ;
private String price ;
private Date createTime ;
>
>
html >
html xmlns: th = «http://www.thymeleaf.org» >
head >
meta charset= «UTF-8» >
title > Блог Фен Сюэчао title >
head >
body >
div th :object= «$
span th :text= «$
span th :text= «*
span th :text= «$<#dates.format(goods.createTime, 'yyyy-MM-dd HH:mm:ss')>« > span > div >
body >
html >
2.2.3 Выражение ссылки @
Используется для преобразования URL, код выглядит следующим образом:
В выражениях ссылок можно передавать параметры, разделенные запятыми.
Относительный корневой каталог сервера: @ <
2.2.4 Текстовые операции
Текстовая операция делится на две части: написание текста, замена текста
Написание текста:
Замена текста:
2.2.5 Тернарное выражение
2.2.6 Роль двойных скобок
1 234 567 890 Скопируйте код
2.2.7 Встраивание текстовых меток
Хотя стандартные теги могут соответствовать практически всем бизнес-сценариям, в некоторых случаях мы предпочитаем писать HTML-текст напрямую, например:
Здравствуйте, [[$
Существует два способа написания встроенного текста: «[[. ]]» и «[(. )]», которые соответственно действуют как th: text и th: utext, например:
Эффект, который вы видите, таков:
2.3 Обзор объектов выражения
Объекты в выражении могут помочь нам справиться с отображаемым содержимым. Например, класс даты в инструменте выражения может форматировать время. Умелое использование этих встроенных классов может заставить нас использовать Thymeleaf более эффективно.
2.3.1 Основные объекты выражений
2.3.2 Утилита выражения Expression
Для конкретных методов в каждом классе, нажмите, чтобы посмотреть: www.thymeleaf.org/doc/tutoria…
Три, Spring Boot интеграции Thymeleaf
3.1Spring Boot объединяет Thymeleaf в четыре этапа:
Далее посмотрите на конкретные шаги.
3.1.1Шаблонный движок Thomeleaf добавлен в pom.xml
3.1.2 application.properties настроить информацию Thymeleaf
На самом деле, во время разработки вам нужно только настроить spring.thymeleaf.cache = false, остальные настройки являются настройками по умолчанию, и настройка не рекомендуется.
# Включить кеш: рекомендуется включить производство,
spring.thymeleaf.cache = false # Предложить, существует ли шаблон
spring.thymeleaf.check-template-location = true # Значение типа содержимого
spring.thymeleaf.servlet.content-type = text / html # включен
spring.thymeleaf.enabled = true # Кодировка шаблона
spring.thymeleaf.encoding = utf-8 # Список имен представлений, которые следует исключить из разрешения (разделенных запятыми)
spring.thymeleaf.excluded-view-names = # шаблонный режим
spring.thymeleaf.mode = HTML5 # путь хранения шаблона
spring.thymeleaf.prefix = classpath: / templates / # шаблон суффикс
3.1.3 Создайте класс контроллера и напишите код
Мы создаем index.java в папке контроллера, код выглядит следующим образом:
package com.littlefxc.blog.controller;
import lombok. Data ;
import org.springframework.stereotype. Controller ;
import org.springframework.web.bind.annotation. RequestMapping ;
import org.springframework.web.servlet.ModelAndView;
import java.util.Arrays;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
/**
* @author fengxuechao
*/
@Controller
public class IndexController <
@Data
public static class Goods <
private String name ;
private String price ;
private Date createTime ;
>
>
Интерпретация ключевого кода:
3.1.4 Создать шаблон и написать HTML-код
Мы создаем index.html под ресурсами / шаблонами, код выглядит следующим образом:
html >
html xmlns: th = «http://www.thymeleaf.org» >
head >
meta charset= «UTF-8» >
title > Блог Фен Сюэчао title >
head >
body >
div th :each= «name,item:$
span th :text= «$
span th :text= «$
div >
div th :replace= «footer :: copyright» > div >
div th :insert= «footer :: about» > div >
div th :include= «footer :: links» > div >
div th :replace= «footer :: welcome(‘ Фэн Сюэчао ‘)» > div >
div >
p th :with= «temp=’ Это локальная переменная ‘» > Локальные переменные: [[$
div >
div >
div id= «all» th :remove= «all» >
span > all span >
span > 1 span >
div >
div id= «body» th :remove= «body» >
span > body span >
span > 2 span >
div >
div id= «tag» th :remove= «tag» >
span > tag span >
span > 3 span >
div >
div id= «all-but-first» th :remove= «all-but-first» >
span > all-but-first span >
span > 4 span >
div >
div id= «none» th :remove= «none» >
span > none span >
span > 5 span >
div >
div >
p > p >
div th :object= «$
span th :text= «$
span th :text= «*
span th :text= «$<#dates.format(goods.createTime, 'yyyy-MM-dd HH:mm:ss')>« > span > div >
body >
html >
html >
html xmlns: th = «http://www.thymeleaf.org» >
head >
meta charset= «UTF-8» >
title > Title title >
head >
body >
div th :fragment= «copyright» >
© Авторские права принадлежат Фэн Сюэчао
div >
div th :fragment= «about» >
на
div >
div th :fragment= «links» >
CCTV
div >