ホームページ  >  記事  >  Java  >  Spring Boot シリーズの Web 開発用テンプレート エンジン Thymeleaf と FreeMarker の詳細な説明

Spring Boot シリーズの Web 開発用テンプレート エンジン Thymeleaf と FreeMarker の詳細な説明

黄舟
黄舟オリジナル
2018-05-11 14:45:106212ブラウズ

前の記事では、json データを返す優れた RESTful API を紹介しました。次に、処理されたデータをページにレンダリングする方法を紹介します。

Spring Boot はテンプレート エンジンを使用します

Spring Boot では、Thymeleaf、FreeMarker、Velocity、Groovy、Mustache などのテンプレート エンジンを使用することをお勧めします。 JSP は推奨されません。

Spring Boot は、上記のエンジンに適切なデフォルト設定を提供します。デフォルトの src/main/resources/templates ディレクトリは、上記のテンプレート エンジンの設定パスです。

1. Spring Boot での Thymeleaf テンプレート エンジンの使用

概要: Thymeleaf は、Velocity や FreeMarker に似たテンプレート エンジンで、Web 環境および非 Web 環境でのアプリケーション開発に使用でき、JSP を完全に置き換えることができます。

1. pom.xml に依存関係を追加します

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

2. th:text="${name}" が thymeleaf の構文である HTML コードを作成します。 Thymeleaf 公式ドキュメント

/**
 * @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";
    }

}

アプリケーションを起動し、http://localhost:8080/home にアクセスして、対応する結果を取得します。

thymeleaf のデフォルト設定を変更する必要がある場合は、application.properties に追加できます:

<!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>

2. Spring Boot で FreeMarker テンプレート エンジンを使用します

1 依存関係を pom.xml に追加します

# ================================================
#                   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。

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

3、テンプレートの下に新しい home.ftl ファイルを作成し、HTML コードを記述します。freemarker の構文については、FreeMarker 公式ドキュメントを参照してください

home.ftl

同上。

アプリケーションを起動して、http://localhost: にアクセスします。 8080/home を実行すると、対応する結果が得られます。

freemarker のデフォルト設定を変更する必要がある場合は、application.properties に

<!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>
を追加できます。

以上がSpring Boot シリーズの Web 開発用テンプレート エンジン Thymeleaf と FreeMarker の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。