Seam Webフレームワーク
Seamは、JSFとEJB 3.0の世界をつなぐ接着剤となるもので(「補足説明1 SeamとWeb Beans」を参照)、EJBをマネージドbeanとして動作できるようにします(これにより、JPAや依存性注入といったEJB 3.0の機能のすべてに直接アクセスできます)。また、Seamは対話(conversation)という新しいコンテキストも提供します。これにより、複数のWebページにまたがる典型的なユースケースを1つの論理単位に簡単に結びつけることができます(そのため、現在のユーザープロセスを追跡するためにセッションコンテキストを操作しなくて済みます)。
リリースされた後の現在は、Java EEプラットフォームでのJSF/EJB 3.0開発の標準フレームワークになるのを待っている状態です。しかし、SeamはEJB 3.0に依存しており、そのEJB 3.0はSpringとの競合でまだ広く採用されていないという事情から、確実にそうなるとは断言できません。
RichFaces JSFコンポーネントライブラリ
RichFacesは、ページ全体をリフレッシュしなくても通常のJSFポストバックサイクルを実行できるようにする完全AJAX対応のJSFコンポーネントライブラリです。これにより、WebアプリケーションがそのままAJAX対応になります。追加のJavaScriptコーディングは必要はありません。つまり、RichFacesは最小限の手間で見栄えのよいWeb 2.0アプリケーションを作成できるように設計されているのです。
RichFacesには次のようなAJAX対応JSFコンポーネントが含まれています。
- メニュー(コンテキスト、ドロップダウンなど)
- ツリーコントロール
- グラフィックパネル(Javaのグラフィック機能を使ってイメージを動的に描画できる)
- タブパネル
- 日付入力カレンダー
- 数値入力スライダおよびスピナーコントロール
- 典型的な追加/削除リストコントロール(図1を参照)
- グラフィカル効果(フェード、折りたたみ、スクイッシュなど)
- プロフェッショナルなデータグリッド/データテーブルコントロール(図2を参照)
RichFacesのテーブル関連の機能の詳細については、オンラインデモを見てから、詳しいマニュアルを読んでください。
Facelets
SeamはJSPページをサポートしますが、デフォルトのビュー技術はFaceletsです。FaceletsにはJSF開発で数多くの利点があります。主な利点としては、テンプレートのサポート、再利用可能なページコンポーネント、高速パフォーマンス、詳細なエラーレポートなどがあります。Seamの作成者であるGavin Kingは、すべてのSeamドキュメントでJSPよりもFaceletsを推奨しています。Faceletsのテンプレートサポートだけでも、Faceletsを選ぶ価値があります。