Javaは仕様で多く動作します。全体的なエンタープライズ仕様はJava EEと呼ばれ、他にもJSFの仕様が含まれています。
仕様には実装があります。たとえば、JBoss ASとGlassFishはどちらもJava EE全体を実装しています。彼らは、独自の開発と個々のプロジェクトでもあり、個別に開発された部品を組み込むことによってこれを行います。例えば
は、JSFは、二つの主要なプロジェクトによって実現される:クロサギ科及びMyFacesの(そこおそらく、独立中国語実装であるが、その一つはよく知られておらず、アクセスすることが困難である)
これらの実装のうち、Mojarraには特別なステータスがあります。これは参照実装(RI)です。
Mojarraには、JBoss ASがデフォルトのJSF実装としてバンドルされ、唯一の実装としてGlassFishがバンドルされています。 MyFacesはJBoss ASにバンドルされていますが、明示的に選択する必要があります。さらに、MyFacesはJava EEのApache実装、すなわちGeronimoとTomEEにバンドルされています。
JSFでは、ビュー(ページ)を合成するためのテンプレート言語がプラグイン可能です。これは、VDL(View Description Language)と呼ばれます。かつてのJSPではこれが使われていましたが、このプラグイン可能性のために第三者が独自のものを実装することができました。たとえば、Authoring JSF pages in pure JavaおよびJavaFX as JSF VDL (View Description Language)?を参照してください。これらの代替VDLの中で最も人気のあるものはFaceletsでした。例えば、この2006年の記事:Facelets fits JSF like a glove
JSFのほぼ完全な不適合とFaceletsの猛烈な人気のため、JSF EGはFaceletsを採用し、これをJSF 2.0に組み込むことに決めました。
したがって、Mojarra 2.xとMyFaces 2.xの両方にはデフォルトで Faceletsが含まれています。これはJSF 2.0の完全で公式な部分です。
最後に、TomcatはJava EE実装ではなく、サーブレットコンテナです。サーブレットとJSP以外はバンドルされていません。ただし、スタックの上に独自のスタックを作成してから、MojarraまたはMyFacesをバンドルすることもできます。もう一度、JSF 2.xバージョンを使用している場合は、Faceletsをバンドルする必要はありません。これは、両方とも既存のFaceletsが含まれているためです。
非常に洞察に満ちた答え+1、歴史知識+1、リンク+1、本当にありがとう! –
あなたは歓迎です;) –
+1のTomEEの言及: –