インターネットの急速な発展に伴い、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 には次の機能があります:
2. FreeMarker API の使用
FreeMarker は、テンプレートを生成するために使用するための多くの API を提供します。最初の呼び出しでは、テンプレートを発行するように FreeMarker を構成します。次に、FreeMarker API をセットアップして使用する方法を示します。
まず、プロジェクトの pom.xml ファイルに FreeMarker の依存関係を追加する必要があります:
<dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.31</version> </dependency>
FreeMarker を作成する場合、またはテンプレートのロード方法を伝えるための設定が必要な場合は、次のコード例を参照してください:
Configuration configuration = new Configuration(Configuration.VERSION_2_3_28); configuration.setClassForTemplateLoading(YourClass.class, "templates");
このうち、VERSION_2_3_28 は FreeMarker のバージョン番号です。 setClassForTemplateLoading() メソッドは、FreeMarker がテンプレートをロードするためのパスを設定します。
次に、テンプレートの入力データを設定する必要があります。 FreeMarker では、この背景はマップであり、このマップにはテンプレートで使用するすべてのデータが含まれている必要があります。 SimpleHash タイプを使用して、このマップを作成できます。
Map<String, Object> input = new HashMap<String, Object>(); input.put("title", "FreeMarker Example");
この例では、「title」をキーとして、「FreeMarker Example」を値として入力に追加しました。
最後に、テンプレートをロードし、入力データをテンプレートにレンダリングする必要があります。次のコード例を参照してください。
Template template = configuration.getTemplate("example.ftl"); Writer out = new OutputStreamWriter(System.out); template.process(input, out); out.flush();
<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>
Map<String, Object> input = new HashMap<String, Object>(); input.put("title", "FreeMarker Example"); ListuserList = 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();
以上がJava API開発におけるWebテンプレートエンジン処理にFreeMarkerを使用するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。