インターネットの急速な発展に伴い、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 には次の機能があります:
- 懸念事項の分離: テンプレート ファイルは、ページの表示効果とフロントエンド ユーザーのインタラクティブな動作のみを定義し、ビジネス ロジックは組み込まれません。コード。
- 強力な型サポート: JSP と比較して、FreeMarker には強力な型サポート機能があり、コンパイル時に型エラーをチェックし、実行時エラーを減らすのに役立ちます。
- さまざまなテンプレート ファイル形式: FreeMarker は、HTML、XML、JSON など (ただしこれらに限定されない) 複数のテンプレート ファイル形式の処理をサポートします。
- 互換性: FreeMarker はさまざまな Web フレームワークに統合でき、SpringMVC、Struts2、およびその他のフレームワークで広く使用されています。
2. FreeMarker API の使用
FreeMarker は、テンプレートを生成するために使用するための多くの API を提供します。最初の呼び出しでは、テンプレートを発行するように FreeMarker を構成します。次に、FreeMarker API をセットアップして使用する方法を示します。
- FreeMarker の依存関係パッケージの紹介
まず、プロジェクトの pom.xml ファイルに FreeMarker の依存関係を追加する必要があります:
1 2 3 4 5 | <dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.31</version>
</dependency>
|
ログイン後にコピー
- FreeMarker の構成
FreeMarker を作成する場合、またはテンプレートのロード方法を伝えるための設定が必要な場合は、次のコード例を参照してください:
1 2 | Configuration configuration = new Configuration(Configuration.VERSION_2_3_28);
configuration.setClassForTemplateLoading(YourClass. class , "templates" );
|
ログイン後にコピー
このうち、VERSION_2_3_28 は FreeMarker のバージョン番号です。 setClassForTemplateLoading() メソッドは、FreeMarker がテンプレートをロードするためのパスを設定します。
- データ モデルの設定
次に、テンプレートの入力データを設定する必要があります。 FreeMarker では、この背景はマップであり、このマップにはテンプレートで使用するすべてのデータが含まれている必要があります。 SimpleHash タイプを使用して、このマップを作成できます。
1 2 | Map<String, Object> input = new HashMap<String, Object>();
input.put( "title" , "FreeMarker Example" );
|
ログイン後にコピー
この例では、「title」をキーとして、「FreeMarker Example」を値として入力に追加しました。
- テンプレートのロードとレンダリング
最後に、テンプレートをロードし、入力データをテンプレートにレンダリングする必要があります。次のコード例を参照してください。
1 2 3 4 | 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 式を含めることができます。 <% ... %>: オリジナルのテンプレートタグが含まれます。 <@...>..: 集約テンプレート フラグメントを示します。 #...#list..#assign...#recover...#stop: テンプレートインスタンスを操作および制御するためのオリジナルタグ。 <#macro...>...<#nested>: 再利用可能なテンプレート ブロックを定義します。
3. FreeMarker の応用例
以下では、Java API 開発で FreeMarker を使用してテンプレートを作成する方法を説明します。
テンプレート ファイルの作成
まず、FreeMarker テンプレート ファイル (例: test.ftl) を作成する必要があります。
1 2 3 4 5 6 7 8 9 10 11 12 13 | <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 ...> タグを使用してユーザーをループし、各ユーザーから名前と電子メール属性を取得します。ユーザー。
データ モデルを設定してテンプレートをロードします
次に、データ モデルを設定する必要があります。次のコード例を参照してください:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | Map<String, Object> input = new HashMap<String, Object>();
input.put( "title" , "FreeMarker Example" );
List<user> userList = new ArrayList<user>();
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></user>
|
ログイン後にコピー
この例では、User という名前の JavaBean クラスが作成され、Map を作成するときに userList をキーとして、List 参照を値として使用し、それを入力に追加します。
3. 概要
この記事では、FreeMarker Web テンプレート エンジンと Java API 開発におけるその使用法について紹介します。 FreeMarker は、コードの読みやすさと保守性を向上させながら、Web アプリケーションの開発を容易にします。 FreeMarker の中心的な機能、構成、および実際のアプリケーションを説明することで、読者が FreeMarker をよりよく理解し、適用できるようにしたいと考えています。
以上がJava API開発におけるWebテンプレートエンジン処理にFreeMarkerを使用するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。