TOPシステム開発> 第1回:JavaScriptを記述しなくてもいいんです! (1/3)

Ajax4JSFで簡単Ajax!

Ajax4JSFで簡単Ajax!

第1回:JavaScriptを記述しなくてもいいんです!

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

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

Ajax4JSFとは

本連載では、JavaScriptを記述することなくAjax通信を実現するフレームワーク「Ajax4JSF」について解説します。

第1回ではJava Server Faces(以下、JSF)をベースにAjax通信を実現するフレームワークである「Ajax4JSF」について、第2回ではAjax4JSF上でリッチなUIを実現する「JBoss RichFaces」についてそれぞれ解説します。そして最終回の第3回では他のJavaベースのAjaxフレームワークとの比較を行います。

Ajax4JSFとは、JBoss.org(http://labs.jboss.com/)で開発されている、JSFをベースとしたオープンソースのAjaxフレームワークです。元々は、Exadel社が商用製品として開発していましたが、JBossとの戦略的提携を機にオープンソースとして公開しました。

Ajax4JSFの最大の特徴は、Ajax通信を行うためにJavaScriptを記述する必要がない点です。ソースは専用のカスタムタグによって記述します。Java開発者は複雑なJavaScirptを書かなくても、JSPファイルにカスタムタグを記述するといった従来の手法でAjaxを実現できます。

またAjax4JSFでは、機能のほとんどをカスタムタグとServletフィルタによって実現しています。そのため、JSFのライフサイクルフェーズなどの動作になるべく影響を与えずに、Ajaxアプリケーションが作成可能です。



では、早速Ajax4JSFのインストール準備をしていきましょう。

セットアップ

Ajax4JSFを利用するには、Java Server Faces 1.1以降が利用できる環境が必要です。今回はTomcatとSunのJSF_RI(Java Server Faces Reference Implementation)を利用します。

Webコンテナの準備とJSFのインストール

JSFはバージョン1.2よりJSTL(Java Standard Tag Liblary)との共存が可能になりました。通常はJSF 1.2を利用するとよいでしょう。JSF 1.2を利用するには、Servlet 2.5、JSP 2.1に対応したWebコンテナが必要です。今回はTomcatの6.xを利用します。なお、JavaEE 5対応のアプリケーションサーバ上でJSFを動かす場合には、標準仕様として必ず組み込まれていますので、別途JSFライブラリのインストールは必要ありません。

Tomcatのインストール

Servlet 2.5&JSP 2.1に対応するTomcatはバージョン6.xです。原稿執筆時点(2007年11月)で最新版は6.0.14です。これをApacheのWebサイトからダウンロードします。

Apache Tomcat - Apache Tomcat 6 Downloads
http://tomcat.apache.org/download-60.cgi

JSFのインストール

Tomcat 6.xはServet 2.5&JSP 2.1に対応したWebコンテナですが、自身でJSFのライブラリを持っていません。そこでJSFのライブラリを別途インストールする必要があります。今回はSunが提供しているJSF_RIを利用します。以下のページからJSF_RIのダウンロードします。

javaserverfaces: JavaServer Faces Community
https://javaserverfaces.dev.java.net/

ダウンロードしたzipファイルを解凍すると、libディレクトリの中に2つのjarファイル「jsf-apt.jar」「jsf-impl.jar」がありますので、これらを<TOMCATインストールディレクトリ>/libフォルダへコピーします(バージョン6からフォルダの構成が変わっているので注意してください)。

JSF_RIの依存ライブラリをインストール

JSF_RIはJSTL 1.2を必要としますので、Glassfishプロジェクトで利用されているjstl-1.2.jarファイルを利用します。

以下のWebサイトからjstl-1.2.jarをダウンロードして、JSFと同様に<TOMCATインストールディレクトリ>/libフォルダへコピーします。


Ajax4JSFのインストール

ここからは、各Webアプリケーションごとの設定を行います。Ajax4JSF自体は特に開発環境に依存はしませんので、読者の皆さんが使い慣れたIDEを利用してWebアプリケーション用のプロジェクトを作成してください。

Ajax4JSFのライブラリは単体ではなく、JBoss RichFacesの一部として配布されています(JBoss Ajax4JSFプロジェクトは2007年の9月より、JBoss RichFacesプロジェクトと統合されました。これによってAjax4JSF単体のライブラリ配布はなくなり、RichFacesも含んだ形での配布となります)。

ここではRichFacesの最新版(11月15日時点での最新版は3.2)のライブラリをダウンロードします。以下のWebページから「richfaces-ui-3.1.2.GA-bin.zip」をダウンロードします。

JBoss RichFaces Project Download
http://labs.jboss.com/jbossrichfaces/downloads/

ダウンロードしたzipファイルを解凍するとlibフォルダの中に「richfaces-api-3.1.2.GA.jar」「richfaces-impl-3.1.2.GA.jar」「richfaces-ui-3.1.2.GA.jar」という3つのjarファイルがあります。これらのファイルをWEB-INF/libディレクトリにコピーします。

Ajax4JSFプロジェクトのドキュメント
http://labs.jboss.com/jbossajax4jsf/docs/devguide/en/html/index.html)には、JSF_RIを利用した場合は上記3つ以外のライブラリは必要ないと記述されています。しかし実際には動きません。

実は以前のJSF_RIは4つのライブラリ「commons-digester (1.7 ->)」「commons-collections (3.1 ->)」「commons-beanutils (1.6 ->)」「commons-logging (1.1 ->)」に依存しており、これらをAjax4JSFから利用していたためです。

JSF_RIの1.2_04以降は上記ライブラリに依存しなくなったので、最新のJSF_RIでAjax4JSFを利用する場合には別途ダウンロードし、WEB-INF/libディレクトリにコピーします。


こういったバージョン間の細かな差異は、今はまだドキュメントに反映されていないので注意してください。それではサンプルアプリケーションを作ってみましょう。 次のページ


1   2  3  次のページ


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


INDEX
第1回:JavaScriptを記述しなくてもいいんです!
Ajax4JSFとは
  サンプルアプリケーションの作成
  Ajax4JSF専用のタグの記述