2

Primefacesのソースをダウンロードして、それらから学ぶことができるかどうかを確認しました。jarには、ライターを使用してレンダリングなどを処理するJavaクラスが多数含まれています。

<ui:composition> ... </ui:composition> and <cc:interface> etc etc

とにかく、これは私に考えさせられました、ファセットと複合コンポーネントを書く別の方法がありますか、それとも彼らはすべてをxhtmlファイルに書き、それらをJavaクラスにコンパイルしましたか?私の質問がばかげている場合は申し訳ありませんが、私はJSFを初めて使用します。

4

2 に答える 2

2

テンプレート ファイルと複合コンポーネントは、簡単に記述して使用できるため、エンド ユーザーの利便性のためだけのものです。基本的な JSF 実装 (f:およびh:コンポーネント) と、PrimeFacesなどのコンポーネント ライブラリは、完全に価値のある UI コンポーネントを使用します。JSFUIComponentクラスを拡張したクラスです。

クラスの開発UIComponentは比較的複雑で扱いにくいものです。タグファイル (XML ファイル内のすべての属性を定義する必要があります)、構成ファイル (コンポーネントとレンダラーを相互にリンクする) などを作成するなど、それらを開発するときに多くのことを考慮する必要がありますが、最終的には、よりモジュール化された再利用可能なモデルと、より優れた効率が得られます。それらはプレーンな古い JSP ファイルでも使用できます。

Facelets テンプレートは、Java クラスにコンパイルされない JSP ファイルとは異なります。これらは、すでに Java で記述されている SAX (XML) パーサーによってロードされ、実行されるだけです。


コメントに従って更新<c:if>します。ビューにまったく関係のないビジネス/条件付きロジックが比較的多く含まれている場合、一般的にパフォーマンスが少し向上します<c:choose>。制御された入力。

JSF 2.0 The Complete Reference 』の第 10 章「非複合コンポーネント」では、カスタム UIComponent の開発についても説明しています。Java EE 5 チュートリアルでも同様にカバーされていますが、JSF 1.2 を対象としています。残念ながら、JSF 2 のJava EE 6 チュートリアルには含まれていませんが、手法は変更されていませんが、知っておく必要のある新しい注釈がいくつかあります。

于 2011-02-18T11:29:27.790 に答える
0

primefaces2 のソースにパッチを当てたい場合のもう 1 つのアドバイス。org.primefaces.maven-jsf-plugin多くの.javaファイルを生成する を使用します。私はかつてそれらの1つにパッチを当てようとしましたが、変更が常に失われたことに驚きましたmvn package

于 2011-02-19T14:47:00.227 に答える