なぜFaceletsを使うのか:
4814 ワード
Faceletsは、JSFアプリケーションを構築するための選択可能な表現層技術である.Faceletsは強力なテンプレート化システムを提供し、HTMLスタイルのテンプレートを使用してJSFの表現層を定義し、コンポーネントが表現層に統合されるときの冗長なコードを減らし、webコンテナを必要としません.
1. JSPはJSFには向いていません
そこで、まずJSPとJSFの関係についてお話しします.多くの学生がJSFを見ると、まず考えたのはのようなtag-libの山かもしれません.確かに、JSFはJSP/サーブレット技術から発展し、+JSFは規範制定の初めからJSPをJSFの下層支持技術として使おうとしましたが、これは完全に異なる2つのプログラミングスタイルであり、この2つを結びつけようとしています.靴下に手を突っ込むようにひねくれている.
JSPはI/Oストリームに基づくウェブページ開発技術であり、率直に言えば、JSPが行ったすべてのことは、「<%>」間のコード断片であってもtag-libであっても、その最終目的は動的なパッチワークHTMLやJavaScriptである.
JSFはコンポーネントベースのウェブ開発技術であり、最終的に生成されるHTMLでもJavaScriptでも、WML、SVGなどの他のUI記述言語でも、コンポーネントレンダリングによって得られる.JSFページは本質的にコンポーネントツリーであり,そのルートノードはである.考えてみれば、Swing/SWTはそうではないだろうか.ただしSwingコンポーネントツリーのルートノードはJFrameかもしれません.したがって,JSFには「コンポーネントツリーの記述技術」が必要である.JSF仕様策定当初は、確かにJSPのtag-libを「コンポーネントツリー記述技術」として望んでいたが、両者のプログラミング思想の違いが大きすぎて、JSPをJSFの「コンポーネントツリー記述技術」として使用すると、ユーザーに大きな誤解を与えることに気づいた.
2. FaceletsはJSFのもっと良いコートです
すると、Faceletsが出てきました.これは、dev.java.net上のSun社のオープンソースプロジェクトで、ホームページはfacelets.dev.java.netです.どうしてFaceletsの方がJSFに向いているのですか?主に次の特性に基づいています.
· Faceletsはxmlに基づいており、コンポーネントツリーのより自然な記述方法である(xmlは生まれながらにしてツリー構造記述言語である).
· Faceletsのテンプレート技術は、Web開発に適しています.
· Faceletsは複合コンポーネントをサポートし、コンポーネントの定義はより簡単です.
· Faceletsのjsfc技術はhtmlデザイナにもっと友好的です
JSPに比べて、Faceletsは実行前にコンパイルする必要はありません.また、Faceletsは生成されたコンポーネントツリーのcacheにも適しています.これにより、実行期間がより軽くなり、効率が高くなります.JSFアプリケーションでFaceletsを使用する方法
コンフィギュレーション
1.jsf-facelets.jarのインポート
2.faces-config.xmlファイルを変更する:
クラスライブラリ
1.FaceletsはJavaServer Faces APIのすべてのUIcomponentsを使用する方法であり、JSFのtagクラスライブラリドキュメントを使用できることを意味します.
2.JSTLのコアライブラリも使用可能
3.さらに、Facelets内にUIタグライブラリを構築し、テンプレート化と再利用性を提供します.https://facelets.dev.java.net/nonav/docs/dev/docbook.html#template-insert
別名コンポーネント(jsfc)
Faceletsに組み込まれたJSFコンポーネントを使用すると、ラベルライブラリドキュメントがあるのはいいことです.
ラベル・ライブラリ・ドキュメントを使用する場合は、簡単なフォームを作成します.
特殊なラベルを使用しているので、HTMLエディタツール(Dreamweaverなど)では特にきれいではありません.Faceletsは、jsfcプロパティを使用してコンポーネントを指定する異なる方法を提供します.
Faceletsコンパイラは、ドキュメント内のすべてのコンポーネントのjsfcプロパティを探します.jsfcプロパティの値は、ページ設計者がこの要素値の代わりにページに使用する別名です.
jsfc(JSF Compilation)は、コンパイラにviewにh:inputTextコンポーネントを追加するように伝えた.Faceletsはコンパイル時にh:inputTextコンポーネントを生成し、適切なすべてのプロパティを自動的に構成します.
別名コンポーネントを使用すると、設計ツールに通常のHTML inputラベルが表示され、プログラマはjsfcプロパティで定義されたJSFコンポーネントと見なすことができます.
1. JSPはJSFには向いていません
そこで、まずJSPとJSFの関係についてお話しします.多くの学生がJSFを見ると、まず考えたのは
JSPはI/Oストリームに基づくウェブページ開発技術であり、率直に言えば、JSPが行ったすべてのことは、「<%>」間のコード断片であってもtag-libであっても、その最終目的は動的なパッチワークHTMLやJavaScriptである.
JSFはコンポーネントベースのウェブ開発技術であり、最終的に生成されるHTMLでもJavaScriptでも、WML、SVGなどの他のUI記述言語でも、コンポーネントレンダリングによって得られる.JSFページは本質的にコンポーネントツリーであり,そのルートノードは
2. FaceletsはJSFのもっと良いコートです
すると、Faceletsが出てきました.これは、dev.java.net上のSun社のオープンソースプロジェクトで、ホームページはfacelets.dev.java.netです.どうしてFaceletsの方がJSFに向いているのですか?主に次の特性に基づいています.
· Faceletsはxmlに基づいており、コンポーネントツリーのより自然な記述方法である(xmlは生まれながらにしてツリー構造記述言語である).
· Faceletsのテンプレート技術は、Web開発に適しています.
· Faceletsは複合コンポーネントをサポートし、コンポーネントの定義はより簡単です.
· Faceletsのjsfc技術はhtmlデザイナにもっと友好的です
JSPに比べて、Faceletsは実行前にコンパイルする必要はありません.また、Faceletsは生成されたコンポーネントツリーのcacheにも適しています.これにより、実行期間がより軽くなり、効率が高くなります.JSFアプリケーションでFaceletsを使用する方法
コンフィギュレーション
1.jsf-facelets.jarのインポート
2.faces-config.xmlファイルを変更する:
<faces-config>
<application>
<view-handler>com.sun.facelets.FaceletViewHandler</view-handler> </application>
</faces-config>
3.JavaServer Faces JSP (*.jsp)。 web.xml 。
<context-param> <param-name>javax.faces.DEFAULT_SUFFIX</param-name> <param-value>.xhtml</param-value></context-param>
クラスライブラリ
1.FaceletsはJavaServer Faces APIのすべてのUIcomponentsを使用する方法であり、JSFのtagクラスライブラリドキュメントを使用できることを意味します.
2.JSTLのコアライブラリも使用可能
3.さらに、Facelets内にUIタグライブラリを構築し、テンプレート化と再利用性を提供します.https://facelets.dev.java.net/nonav/docs/dev/docbook.html#template-insert
別名コンポーネント(jsfc)
Faceletsに組み込まれたJSFコンポーネントを使用すると、ラベルライブラリドキュメントがあるのはいいことです.
ラベル・ライブラリ・ドキュメントを使用する場合は、簡単なフォームを作成します.
<h:form>
<h:inputText value="#{person.name}"/>
<h:commandButton action="#{person.action}"/>
</h:form>
特殊なラベルを使用しているので、HTMLエディタツール(Dreamweaverなど)では特にきれいではありません.Faceletsは、jsfcプロパティを使用してコンポーネントを指定する異なる方法を提供します.
Faceletsコンパイラは、ドキュメント内のすべてのコンポーネントのjsfcプロパティを探します.jsfcプロパティの値は、ページ設計者がこの要素値の代わりにページに使用する別名です.
<input type="text" jsfc="h:inputText" value="#{foo.bar}"/>
jsfc(JSF Compilation)は、コンパイラにviewにh:inputTextコンポーネントを追加するように伝えた.Faceletsはコンパイル時にh:inputTextコンポーネントを生成し、適切なすべてのプロパティを自動的に構成します.
別名コンポーネントを使用すると、設計ツールに通常のHTML inputラベルが表示され、プログラマはjsfcプロパティで定義されたJSFコンポーネントと見なすことができます.