SpringBoot が Thymeleaf と FreeMarker ビュー レイヤ テクノロジをどのように統合するか

WBOY
リリース: 2023-05-20 14:34:24
転載
1143 人が閲覧しました

Thymeleaf の統合

Thymeleaf は、Velocity や FreeMarker などの従来の Java テンプレート エンジンと同様の、新世代の Java テンプレート エンジンです。従来の Java テンプレート エンジンとは異なり、Thymeleaf は HTML プロトタイプをサポートしているため、フロントエンド エンジニアはブラウザでスタイルを直接開いて表示でき、バックエンド エンジニアは実際のデータに基づいて表示効果を確認できます。 Spring Boot は Thymeleaf 自動構成ソリューションを提供しているため、Spring Boot で Thymeleaf を使用すると非常に便利です。 Thymeleaf を Spring Boot に統合するために使用できる手順は次のとおりです

1. プロジェクトを作成して依存関係を追加します

Spring Boot プロジェクトを作成し、spring-boot-starter-web と spring を追加します-boot-starter-thymeleaf は


  org.springframework.boot
  spring-boot-starter-web



  org.springframework.boot
  spring-boot-starter-thymeleaf
ログイン後にコピー

2 に依存します。Thymeleaf の構成

Spring Boot は、Thymeleaf の自動構成クラス ThymeleafAutoConfiguration を提供します。関連する構成プロパティは、ThymeleafProperties クラスにあります。ソースの一部です。 ThymeleafProperties クラスのコードは次のとおりです。

@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";
}
ログイン後にコピー

この構成からわかるように、デフォルトのテンプレートの場所は classpath:/templates/ で、デフォルトのテンプレートのサフィックスは .html です。 IDEA を使用して Spring Boot プロジェクトを作成すると、デフォルトでいくつかのファイルがテンプレート フォルダーに作成されます。デフォルトの Thymeleaf 設定パラメータをカスタマイズする必要がある場合は、application.properties で設定できます。一般的な設定の一部は次のとおりです:

#キャッシュを有効にするかどうか、開発中に false に設定できます。デフォルトは true
spring.thymeleaf.cache=false
#テンプレートが存在するかどうかを確認します。デフォルトは true
spring.thymeleaf.check-template=true
#テンプレートが存在するかどうかを確認しますlocation が存在します。デフォルトは true
spring.thymeleaf.check-template-location=true
#テンプレート ファイルのエンコーディング
spring.thymeleaf.encoding=UTF-8
#テンプレート ファイルの場所
spring.thymeleaf.prefix=classpath:/ templates/
#Content-Type 構成
spring.thymeleaf.servlet.content-type=text/html
#テンプレート ファイルのサフィックス
spring.thymeleaf.suffix =.html

3. コントローラーを設定します

次のように Book エンティティ クラスを作成し、コントローラーで ModelAndView を返します:

public class Book {
    private int id;
    private String name;
    private String author;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getAuthor() {
        return author;
    }
    public void setAuthor(String author) {
        this.author = author;
    }
}
ログイン後にコピー
@RestController
public class BookController {
    @GetMapping(value = "/books")
    public ModelAndView books(){
        List books = new ArrayList<>();
        Book b1 = new Book();
        b1.setId(1);
        b1.setAuthor("唐家三少");
        b1.setName("斗罗大陆Ⅰ");
        Book b2 = new Book();
        b2.setId(2);
        b2.setAuthor("唐家三少");
        b2.setName("斗罗大陆Ⅱ");
        books.add(b1);
        books.add(b2);
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.addObject("books",books);
        modelAndView.setViewName("books");
        return modelAndView;
    }
}
ログイン後にコピー

4。ビューを作成します。

リソース ディレクトリに次のように、books.html をテンプレート ディレクトリに作成します。




    
    图书列表

图书编号 图书名称 图书作者
ログイン後にコピー

コードの説明:

  • 最初に、 2 行目の Thymeleaf 名前空間

  • トラバーサルを通じてブック内のデータを表示します。Thymeleaf では、コレクションのトラバースに th:each が使用され、データの表示に th:text が使用されます。

#5. 実行

図に示すように、ブラウザに「http://localhost:8081/books」と入力して実行結果を表示します。

SpringBoot が Thymeleaf と FreeMarker ビュー レイヤ テクノロジをどのように統合するかFreeMarker の統合

FreeMarker は歴史ある Web 環境と Web 以外の環境の両方に適した、長年確立されているテンプレート エンジンです。 FreeMarker は、ブラウザに表示する前に解析する必要があります。 FreeMarker は、HTML ページ テンプレートの構成だけでなく、電子メール テンプレート、構成ファイル テンプレート、ソース コード テンプレートとしても使用できます。統合手順は次のとおりです:

1. プロジェクトを作成し、依存関係を追加します

Spring Boot プロジェクトを作成し、spring-boot-starter-web と spring-boot-starter- を追加します。


  org.springframework.boot
  spring-boot-starter-web



  org.springframework.boot
  spring-boot-starter-freemarker
ログイン後にコピー

2. FreeMarker の構成

Spring Boot では、FreeMarker の自動構成クラス FreeMarkerAutoConfiguration も提供されています。関連する構成プロパティは FreeMarkerProperties にあります。FreeMarkerProperties のソース コードの一部です。

@ConfigurationProperties(prefix = "spring.freemarker")
public class FreeMarkerProperties extends AbstractTemplateViewResolverProperties {
	public static final String DEFAULT_TEMPLATE_LOADER_PATH = "classpath:/templates/";
	public static final String DEFAULT_PREFIX = "";
	public static final String DEFAULT_SUFFIX = ".ftl";
    ...
}
ログイン後にコピー

FreeMarker のデフォルト テンプレートの場所は、Thymeleaf と同じで、両方とも classpath:/templates/ です。デフォルトのファイル接尾辞は .ftl です。開発者は、application.properties でこれらのデフォルト設定を変更できます。

3. コントローラー

コントローラーは Thymeleaf のコントローラーと同じであるため、ここでは繰り返しません

4. ビューの作成

次のように、リソース ディレクトリの下のテンプレート ディレクトリにbooks.ftl ファイルを作成します。




    
    图书列表FreeMarker

<#if books ?? && (books?size>0)> <#list books as book>
图书编号 图书名称 图书作者
${book.id} ${book.name} ${book.author}
ログイン後にコピー

コードの説明:

まず、モデル内の書籍が制御可能であり、データがあることを確認します。

## を実行して、ブラウザに「http://localhost:8081/books」と入力して、実行結果を表示します (図を参照)。 ##################################

以上がSpringBoot が Thymeleaf と FreeMarker ビュー レイヤ テクノロジをどのように統合するかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!