Maison  >  Article  >  Java  >  Explication détaillée des moteurs de modèles Thymeleaf et FreeMarker pour le développement Web de la série Spring Boot

Explication détaillée des moteurs de modèles Thymeleaf et FreeMarker pour le développement Web de la série Spring Boot

黄舟
黄舟original
2018-05-11 14:45:106254parcourir

Les articles précédents ont présenté une bonne API RESTful qui renvoie des données json. Ensuite, nous présentons comment restituer les données traitées sur la page.

Spring Boot utilise des moteurs de modèles

Spring Boot recommande d'utiliser des moteurs de modèles tels que Thymeleaf, FreeMarker, Velocity, Groovy et Moustache. L'utilisation de JSP n'est pas recommandée.

Spring Boot fournit de bonnes configurations par défaut pour les moteurs ci-dessus. Le répertoire par défaut src/main/resources/templates est le chemin de configuration des moteurs de modèles ci-dessus.

1. Moteur de modèles Thymeleaf utilisé dans Spring Boot

Introduction : Thymeleaf est un moteur de modèles similaire à Velocity et FreeMarker, qui peut être utilisé pour le développement d'applications dans des environnements Web et non Web, et peut être complètement remplacé JSP.

1. Ajoutez des dépendances à pom.xml

<!-- thymeleaf 模板引擎-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

2. Écrivez le contrôleur

/**
 * @author sam
 * @since 2017/7/16
 */
@Controller
public class HomeController {

    @RequestMapping("/home")
    public String home(ModelMap modelMap) {

        modelMap.put("name", "Magical Sam");

        List<String> list = new ArrayList<>();
        list.add("sam a");
        list.add("sam b");
        list.add("sam c");
        list.add("sam d");
        modelMap.put("list", list);

        return "home";
    }

}

3. Écrivez le code HTML, où th:text="${ name }" est la syntaxe de thymeleaf. Pour plus de détails, veuillez vous référer au document officiel de Thymeleaf

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8"/>
    <title>Home</title>
</head>
<body>
    <span th:text="${name}"></span>
    <ul>
        <li th:each="item : ${list}" th:text="${item}"></li>
    </ul>
</body>
</html>

Démarrez l'application et visitez : http://localhost:8080/home pour obtenir les résultats correspondants.

Si vous devez modifier la configuration par défaut de thymeleaf, vous pouvez ajouter application.properties :

# ================================================
#                   Thymeleaf配置
# ================================================
# 是否启用thymeleaf模板解析
spring.thymeleaf.enabled=true
# 是否开启模板缓存(建议:开发环境下设置为false,生产环境设置为true)
spring.thymeleaf.cache=false 
# Check that the templates location exists.
spring.thymeleaf.check-template-location=true 
# 模板的媒体类型设置,默认为text/html
spring.thymeleaf.content-type=text/html
# 模板的编码设置,默认UTF-8
spring.thymeleaf.encoding=UTF-8
# 设置可以被解析的视图,以逗号,分隔
#spring.thymeleaf.view-names=
# 排除不需要被解析视图,以逗号,分隔
#spring.thymeleaf.excluded-view-names=
# 模板模式设置,默认为HTML5
#spring.thymeleaf.mode=HTML5 
# 前缀设置,SpringBoot默认模板放置在classpath:/template/目录下
spring.thymeleaf.prefix=classpath:/templates/ 
# 后缀设置,默认为.html
spring.thymeleaf.suffix=.html
# 模板在模板链中被解析的顺序
#spring.thymeleaf.template-resolver-order=

2. Utilisation du moteur de modèles FreeMarker dans Spring Boot

. 1. pom.xml Ajouter une dépendance

<!-- freemarker 模板引擎 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>

2. Écrire le contrôleur

同上。

3. Créez un nouveau fichier home.ftl sous les modèles et écrivez le code HTML pour la syntaxe freemarker. reportez-vous à : Documentation officielle de FreeMarker

home.ftl

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <span>${name}</span>
    <ul>
    <#list list as item >
        <li>${item}</li>
    </#list>
    </ul>
</body>
</html>

Démarrez l'application et visitez : http://localhost:8080/home pour obtenir les résultats correspondants.

Si vous devez modifier la configuration par défaut de freemarker, vous pouvez ajouter application.properties :

# ================================================
#                   FreeMarker配置
# ================================================
# 是否开启模板缓存
spring.freemarker.cache=true
# 编码格式
spring.freemarker.charset=UTF-8
# 模板的媒体类型设置
spring.freemarker.content-type=text/html
# 前缀设置 默认为 ""
spring.freemarker.prefix=
# 后缀设置 默认为 .ftl
spring.freemarker.suffix=.ftl
#spring.freemarker.allow-request-override=false
#spring.freemarker.check-template-location=true
#spring.freemarker.expose-request-attributes=false
#spring.freemarker.expose-session-attributes=false
#spring.freemarker.expose-spring-macro-helpers=false
#spring.freemarker.request-context-attribute=
#spring.freemarker.template-loader-path=classpath:/templates/
#spring.freemarker.view-names=

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn