について最近読みましVelocity
た。チュートリアルも読みましたhere . しかし、私はJSP タグを使用して同じことを行うことができると言うことができる限り
、使用する利点が何であるかを理解できません。では、いつ彼のプロジェクトに
導入し、何を得るでしょうか?Velocity
Velocity
3 に答える
何かのテンプレートが必要なときにいつでも使用できます。たとえば、アプリケーションが顧客にテキスト メールを送信する場合、メールは次のようにカスタマイズする必要があります。
$customerName 様
明日 $tomorrowDate が次のアカウントにあることをお知らせします:
#foreach ($accounts in $account)
Velocity を使用すると、いくつかの電子メール テンプレートを作成し、顧客ごとにコンテンツをカスタマイズできます。JSP の代わりとして使用する必要はありません。
動的ファイル、たとえば HTML ファイルを作成するとします。ファイルをコードで記述し、次のようなタグを付けることができます
<body>
"<div>User:" + users.getUserName() + "</div>"
</body>
または、Velocity を使用してテンプレート ファイルを作成することもできます
<body>
<div>User: #user.getUserName()</div>
</body>
これを行う利点は、ファイルをコードから分離できることです。つまり、後でコードを再コンパイルせずにファイルを変更できます。
Velocity はテンプレート エンジンであり、JSP は (一種の)スクリプト エンジンです。違いは非常に大きく、一見すると同じことをしているように見えますが、Velocity を悪用して実際にスクリプト エンジンに変えることができます。IMHO の 2 つの主な差別化要因は次のとおりです。
- Velocity はより安全です。デフォルトでは、明示的にコンテキストに配置したオブジェクトのパブリック メソッドのみを呼び出すことができます。JSP を使用すると、ほぼすべての Java コードを実行できます
- Velocity は理解しやすいです。構文要素がほとんどない単純な構文です。JSP には、スクリプトレット タグ内に完全な Java 構文があり、さらに <% ラッパー %>
したがって、すべての状況でどちらも明らかに優れているわけではありません。それぞれをいつ使用するかを自分で決定する必要があります。もちろん、同じプロジェクトでさまざまな目的のために組み合わせることができます。
IMHO Velocity は、次の場合に最適に機能します。
- 電子メール テンプレートなど、コンテキストで渡されるいくつかの変数を使用したテンプレートの単純な補間
- Velocity は、MVC アーキテクチャの非常にクリーンなView部分を実装するためのより良い候補であると思います。なぜなら、JSP では、JSP ページ内にいくつかのコード ( Controller )を混在させることがより魅力的であり、最終的にはビューとビューの両方を混在させるからです。 JSP ページのコントローラー。
- もう 1 つの利点は、開発者以外がその構文を理解できるため、インターフェイスの設計者と開発者の両方が同じファイルで作業できることです。
- ユーザー生成コードの実行に使用できる安全なスクリプト エンジンとして十分に機能します。