TOPシステム開発> 第2回:Javascriptを記述せずにリッチなUIを実現する! (1/3)

Ajax4JSFで簡単Ajax!

Ajax4JSFで簡単Ajax!

第2回:Javascriptを記述せずにリッチなUIを実現する!

著者:カサレアル  岡本 充洋

公開日:2007/12/18(火)

リッチなユーザインターフェースを構築する仕組み「RichFaces」

第1回:JavaScriptを記述しなくてもいいんです!」ではJBossによって開発されているJSFベースのAjaxフレームワークであるAjax4JSFについて取り上げました。

Ajax4JSFでは、Javascriptを記述せずにAjax通信や画面の部分的な再読み込み、ポーリング処理といったことを実現できます。しかし、リッチなユーザインターフェースを構築する仕組みは用意されていませんでした。その穴を埋めるのが「RichFacesフレームワーク」です。

RichFacesとは

RichFacesもAjax4JSFと同様に、もともとはExadel社が商用製品として開発していたものを、JBossとの提携を契機にオープンソース化したものです。

大きな特徴はAjax4JSFと同じくJSFベースで、Javascriptを記述しなくてもトグルパネルやツリーメニュー、ドラッグ&ドロップなどのリッチなUIをカスタムタグで実現できる点にあります。

またAjax通信の部分にはAjax4JSFを利用しており、通信やバックエンドの処理はAjax4JSF、リッチなUIを生成するコンポーネントはRichFacesと、お互いが補完し合う関係となっています。また、2007年9月にAjax4JSFプロジェクトとRichFacesプロジェクトは統合され、今後はAjax4JSFの機能も含めてひとまとめにJBoss RichFacesと呼ぶことになるようです。

ではさっそく試してみましょう。

セットアップ

RichFacesはAjax4JSFをベースに拡張して作られています。2つのプロジェクトは統合された上に、RichFaces自体ほぼカスタムタグのみで機能を実現しているため、セットアップ方法は前回の手順と変わりません。

JSFを利用可能なWebコンテナ上でライブラリを配備し、org.ajax4jsf.FilterをFaces Servletに適用すれば利用できます。詳しくは「第1回:JavaScriptを記述しなくてもいいんです!」を参照ください。

サンプルアプリケーションの作成

コーディング方法もAjax4JSFとほとんど変わりません。今回もデータベースなどは利用せず、ManagedBeanの中にあるユーザ一覧から検索を行って表示するといった簡単なアプリケーションを作成してみます。

Web.xml

まずはorg.ajax4jsf.Filterを適用するために、Web.xmlを設定します(リスト1)。Filterの登録が完了したら、通常のJSFと同じ手順でアプリケーションを作成していきます。

リスト1:Web.xml

(画像をクリックすると別ウィンドウに拡大図を表示します)

リスト2:Maneged Bean

(画像をクリックすると別ウィンドウに拡大図を表示します)

Maneged Bean

ではManeged Beanを作成しましょう。ここでは便宜上コンストラクタ中で検索を行うためのユーザデータを生成しています(リスト2)。

テキストフィールドの入力補完に利用する非JSFなメソッド「searchSuggest」と、「searchUser」「searchAllUser」といった条件検索、全件検索に対応した2種類のアクションメソッドがあります。メソッド「searchSuggest」のシグニチャは、名前は任意で戻り値はh:dataTableで利用できるのと同じ型の範囲、publicなアクセス修飾子を持ちObject型を引数にする必要があります。 次のページ


1   2  3  次のページ


株式会社カサレアル 岡本 充洋
著者プロフィール
株式会社カサレアル  岡本 充洋
プロフェッショナルサービスセンター所属。
エンジニア向けトレーニングの実施や技術コンサルティングなどに従事し、企業への技術支援を行う。その傍ら、各種ユーザーグループでの活動を通してエンジニア同士の情報交換を行い、日々精進を重ねている。
カサレアル:http://www.casareal.co.jp/
ブログ:http://mitsublo.blogspot.com/


INDEX
第2回:Javascriptを記述せずにリッチなUIを実現する!
リッチなユーザインターフェースを構築する仕組み「RichFaces」
  Userクラス
  サンプルページ作成