私は JSF にまったく慣れていないので、チュートリアルを読むと JSF と Facelets の間で簡単に混乱してしまいます...
Facelets とは?..JSF と Facelets は同じものですか?...
Facelets は JSTL とどう違うのですか?
Faceletsは、HTMLスタイルテンプレートを使用してJavaServer Facesビューを構築し、コンポーネントツリーを構築するために使用される、強力で軽量なページ宣言言語です。Faceletsの機能は次のとおりです。
・Webページの作成にXHTMLを使用する
・JavaServer FacesおよびJSTLタグライブラリに加えてFaceletsタグライブラリを
サポートする・Expression Language(EL)をサポートする
・コンポーネントおよびページのテンプレート化
基本的に、Faceletsを使用すると、JSFを使用している場合に、htmlページにUIコントロールを追加するのに役立つテンプレートタグライブラリ(XMLドキュメント)を追加できます。この宣言はFaceletsの例です。
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html">
<!-- look at the xml library 'import' -->
<body>
<h:form>
<h:outputText value="Welcome, #{loggedInUser.name}" disabled="#{empty loggedInUser}" />
<h:inputText value="#{bean.property}" />
<!-- look at this tags, the special mark 'h:outputText'... -->
<h:commandButton value="OK" action="#{bean.doSomething}" />
</h:form>
</body>
</html>
結論として、FaceletsはUIコントロール用のツール(テンプレートタグライブラリ)を提供し、JSFはこのコントロールとバックビーンとの通信を可能にします。
http://en.wikipedia.org/wiki/Facelets
http://docs.oracle.com/javaee/6/tutorial/doc/gijtu.html