Java API開発におけるWebテンプレートエンジン処理にFreeMarkerを使用する

PHPz
リリース: 2023-06-18 08:39:54
オリジナル
1616 人が閲覧しました

インターネットの急速な発展に伴い、Web アプリケーションの開発はますます一般的になりました。 Web アプリケーションをより読みやすく、保守しやすくするために、開発者はビューのレンダリングに Web テンプレート エンジンを使用することがよくあります。 Java 開発では、人気のある Web テンプレート エンジンが多数あり、FreeMarker もその 1 つです。

この記事では、FreeMarker Web テンプレート エンジンと、そのコア機能、構成、実際の戦闘でのアプリケーションなど、Java API 開発におけるその使用法を紹介します。

1. FreeMarker とは

FreeMarker は、テンプレートベースのメソッドを使用して静的テキストまたは動的 Web ページを生成するオープン ソース Java テンプレート エンジンです。テンプレートとプログラムコードの分離が特徴で、これによりパフォーマンスとロジックの境界が明確になり、ページレンダリングとビジネスロジックが分離され、コードの可読性と保守性が向上します。 FreeMarker は、テキスト テンプレート、XML テンプレート、HTML テンプレート、JSP タグ ライブラリなどの複数のテンプレート タイプをサポートし、Struts2、Spring MVC などのさまざまな Web フレームワークと統合できます。

FreeMarker には次の機能があります:

  1. 懸念事項の分離: テンプレート ファイルは、ページの表示効果とフロントエンド ユーザーのインタラクティブな動作のみを定義し、ビジネス ロジックは組み込まれません。コード。
  2. 強力な型サポート: JSP と比較して、FreeMarker には強力な型サポート機能があり、コンパイル時に型エラーをチェックし、実行時エラーを減らすのに役立ちます。
  3. さまざまなテンプレート ファイル形式: FreeMarker は、HTML、XML、JSON など (ただしこれらに限定されない) 複数のテンプレート ファイル形式の処理をサポートします。
  4. 互換性: FreeMarker はさまざまな Web フレームワークに統合でき、SpringMVC、Struts2、およびその他のフレームワークで広く使用されています。

2. FreeMarker API の使用

FreeMarker は、テンプレートを生成するために使用するための多くの API を提供します。最初の呼び出しでは、テンプレートを発行するように FreeMarker を構成します。次に、FreeMarker API をセットアップして使用する方法を示します。

  1. FreeMarker の依存関係パッケージの紹介

まず、プロジェクトの pom.xml ファイルに FreeMarker の依存関係を追加する必要があります:

    <dependency>
        <groupId>org.freemarker</groupId>
        <artifactId>freemarker</artifactId>
        <version>2.3.31</version>
    </dependency>
ログイン後にコピー
  1. FreeMarker の構成

FreeMarker を作成する場合、またはテンプレートのロード方法を伝えるための設定が必要な場合は、次のコード例を参照してください:

Configuration configuration = new Configuration(Configuration.VERSION_2_3_28);
configuration.setClassForTemplateLoading(YourClass.class, "templates");
ログイン後にコピー

このうち、VERSION_2_3_28 は FreeMarker のバージョン番号です。 setClassForTemplateLoading() メソッドは、FreeMarker がテンプレートをロードするためのパスを設定します。

  1. データ モデルの設定

次に、テンプレートの入力データを設定する必要があります。 FreeMarker では、この背景はマップであり、このマップにはテンプレートで使用するすべてのデータが含まれている必要があります。 SimpleHash タイプを使用して、このマップを作成できます。

Map<String, Object> input = new HashMap<String, Object>();
input.put("title", "FreeMarker Example");
ログイン後にコピー

この例では、「title」をキーとして、「FreeMarker Example」を値として入力に追加しました。

  1. テンプレートのロードとレンダリング

最後に、テンプレートをロードし、入力データをテンプレートにレンダリングする必要があります。次のコード例を参照してください。

Template template = configuration.getTemplate("example.ftl");
Writer out = new OutputStreamWriter(System.out);
template.process(input, out);
out.flush();
ログイン後にコピー

この例では、「example.ftl」はテンプレート ファイルです。configuration.getTemplate() メソッドを使用してそれを読み込み、template.process() メソッドを使用して入力のデータをテンプレートにレンダリングします。そして最後にそれを最後まで出力します。

    FreeMarker テンプレートの構文
FreeMarker テンプレートの構文は、テンプレート タグ、組み込み形式、およびメソッドを定義します。テンプレート マーカーはテンプレート内のディレクティブであり、${} または <% %> タグのペア内の FreeMarker テンプレート コードで構成されます。

以下は FreeMarker マーカーの一部です:

    ${...}: FreeMarker 式には、任意の正当な Java 式を含めることができます。
  1. <% ... %>: オリジナルのテンプレートタグが含まれます。
  2. <@...>..: 集約テンプレート フラグメントを示します。
  3. #...#list..#assign...#recover...#stop: テンプレートインスタンスを操作および制御するためのオリジナルタグ。
  4. <#macro...>...<#nested>: 再利用可能なテンプレート ブロックを定義します。
3. FreeMarker の応用例

以下では、Java API 開発で FreeMarker を使用してテンプレートを作成する方法を説明します。

    テンプレート ファイルの作成
まず、FreeMarker テンプレート ファイル (例: test.ftl) を作成する必要があります。

<html>
<head>
<title>${title}</title>
</head>
<body>
<h1>${title}</h1>
<ul>
<#list users as user>
<li>${user.name} (${user.email})</li>
</#list>
</ul>
</body>
</html>
ログイン後にコピー

この例では、 ${...} タグを使用して入力内のデータを参照し、<#list ...> タグを使用してユーザーをループし、各ユーザーから名前と電子メール属性を取得します。ユーザー。

    データ モデルを設定してテンプレートをロードします
次に、データ モデルを設定する必要があります。次のコード例を参照してください:

Map<String, Object> input = new HashMap<String, Object>();
input.put("title", "FreeMarker Example");
List userList = new ArrayList();
userList.add(new User("Tom", "tom@example.com"));
userList.add(new User("Jerry", "jerry@example.com"));
input.put("users", userList);

Configuration configuration = new Configuration(Configuration.VERSION_2_3_28);
configuration.setClassForTemplateLoading(YourClass.class, "/templates");

Template template = configuration.getTemplate("test.ftl");
Writer out = new OutputStreamWriter(System.out);
template.process(input, out);
out.flush();
ログイン後にコピー
この例では、User という名前の JavaBean クラスが作成され、Map を作成するときに userList をキーとして、List 参照を値として使用し、それを入力に追加します。

3. 概要

この記事では、FreeMarker Web テンプレート エンジンと Java API 開発におけるその使用法について紹介します。 FreeMarker は、コードの読みやすさと保守性を向上させながら、Web アプリケーションの開発を容易にします。 FreeMarker の中心的な機能、構成、および実際のアプリケーションを説明することで、読者が FreeMarker をよりよく理解し、適用できるようにしたいと考えています。

以上がJava API開発におけるWebテンプレートエンジン処理にFreeMarkerを使用するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート