web-dev-qa-db-ja.com

FreemarkerとVelocity

テンプレートエンジンとして使用するFreemarkerとVelocityのどちらかを決定しようとしていますが、それぞれに関して何か長所と短所がありますか?

代わりに検討すべき代替案はありますか?

22
Tony the Pony

VelocityとFreemarkerはどちらも非常に優れています。選択に苦しんではいけません。それらは設計の背後でかなり異なる優先順位を持っているため、基本的なテンプレートを超えると、それらの機能セットを比較するのは困難です。 Velocityの構文はより単純で明確であり、Freemarkerのより重い構文により、JSPライブラリをサポートできます。 Velocityは、 VelocityTools のようなアドオンプロジェクトを通じて、より多くの自由と最終的にはより多くの機能を提供します。 Freemarkerは、はるかに優れたネイティブ空白処理を提供し、最近のVelocityリリースは、より興味深いコンテンツコントロール(#define、#evaluate、#[[literal block]]#)を提供します。

パフォーマンスに関しては、おそらく最初のテンプレート解析を除いて、Velocityは近年大幅に向上しています。ただし、パフォーマンスが重要な正常なアプリの場合は、両方のエンジンをキャッシュテンプレートに設定し、1回だけ解析する必要があります。これにより、問題が少なくなります。一般に、どちらのエンジンでもパフォーマンスは、エンジン間の違いよりもテンプレートの性質に大きく依存することがわかります。

StringTemplateも立派ですが、MVCナチスであり、機能のVelocityやFreemarkerと一致させることはできません。 ;)あなたの潜在的な失望は、より人気のあるテンプレートエンジンのいずれよりも少し高く、どちらもそれほど失望する可能性はありません。 1つをつかんで行きます。

35
Nathan Bubna

私はFreeMarkerが好きです。私はドキュメントが大好きで、必要なものをいつでも見つけることができます。全体的に、私はそれが非常に強力だと思います。

文字列テンプレート は別の選択肢です。

8
Andy

this は比較のまともな要約のようです。とはいえ、数年前です。

記事から:

結論として

FreeMarkerとVelocityはどちらも非常に有能なテンプレートエンジンです。 Velocityは、おそらくApacheプロジェクトの一部であるという事実のために、より多くのユーザーベースを楽しんでいるようです。ただし、この記事で示したように、FreeMarkerは2つのうちでより洗練されて高速です。基本的な操作では、両方のテンプレートエンジンはほぼ同じであり、理解しやすいAPIを提供します。

VelocityとFreeMarkerはどちらもアプリケーションへの統合が非常に簡単で、小さなテンプレートで優れたパフォーマンスを提供します。大きなテンプレートを解析すると速度が低下します。これは、プロジェクトのテンプレートエンジンを選択するときに考慮する場合があります。

5
javamonkey79

Freemarkerプロジェクトページに 長い比較 があります。

ベロシティを扱ったことがないので、2つを有意義に比較することはできませんが、フリーマーカーに非常に満足していたので、それを超える理由はありませんでした。

2
meriton

FreemarkerはAndroidでは動作しません。そのため、現在、プロジェクトをVelocityに変換して、モバイルデバイスと互換性を持たせています。

0
user208354