なぜテンプレートエンジンを使用するのですか?jsp includeおよびjstl vs tiles、freemarker、velocity、sitemesh
私は自分のビューを整理する方法を選択しようとしています(spring-mvcを使用しますが、それほど重要ではありません) 私が見る限り、6つのオプションがあります(ただし、相互に排他的ではありません)。 タイル Sitemesh フリーマーカー 速度 <jsp:include> <%@ include file=".."> タイルとSitemeshはグループ化できます。FreemarkerとVelocityも同様です。各グループ内でどれを使用するかは、この議論の問題ではありません。それについて十分な質問と議論があります。 これは興味深い記事ですが、タイルを使用するように私を説得することはできません。 私の質問は-JSTLでは適切に実行できないこれらのフレームワーク は何を提供するのですか?<@ include file="..">主なポイント(一部は記事から引用): ヘッダーやフッターなどのページの一部を含める -違いはありません: <%@ include file="header.jsp" %> そして <tiles:insert page="header.jsp" /> タイトル、メタタグなどのヘッダーでのパラメーターの定義。これは、特にSEOの観点から、非常に重要です。テンプレートオプションを使用すると、各ページで定義する必要のあるプレースホルダーを簡単に定義できます。しかし、JSTLでjspを使用する<c:set>には、<c:out>(インクルードページで)および(インクルードページで)を使用します。 レイアウトの再編成 -ブレッドクラムをメニューの上、またはログインボックスを別のサイドパネルの上に移動する場合。(jspを使用した)ページの包含が適切に構成されていない場合は、そのような場合にすべてのページを変更する必要があります。ただし、レイアウトが複雑すぎず、ヘッダー/フッターに共通のものを配置する場合は、何も心配する必要はありません。 共通コンポーネントと特定のコンテンツの結合 -これに関する問題は見つかりません。フラグメントを再利用する場合は、ヘッダー/フッターが含まれていないページに移動し、必要な場所に含めます。 効率 - <%@ include file="file.jsp" %>一度コンパイルされるので、何よりも効率的です。他のすべてのオプションは、何度も解析/実行されます。 複雑さ -すべての非jspソリューションには、追加のxmlファイル、追加のインクルード、プリプロセッサ構成などが必要です。これは学習曲線であり、潜在的な障害ポイントの導入にもなります。また、それはサポートと変更をより面倒にします-何が起こっているのかを理解するためにいくつかのファイル/構成をチェックする必要があります。 プレースホルダー -速度/フリーマーカーはJSTL以上のものを提供しますか?JSTLでは、プレースホルダーを配置し、モデル(コントローラーによって要求またはセッションスコープに配置されます)を使用して、これらのプレースホルダーを埋めます。 だから、私はプレーンなJSPの代わりに/に加えて上記のフレームワークのいずれかを使うべきだと私に納得させます。