ここで、見た目や機能がほぼ同一のアプリケーションをStrutsとJSFで作成して、それぞれどのようなコンポーネントを、どのように作成するのかを見てみよう。
Strutsアプリケーション、JSFアプリケーションの実行に必要な環境は表1の通りだ。Strutsのほうが少し古い環境にも対応している。
| Struts | JSF | |
|---|---|---|
| JVM | バージョン1.2以降 | バージョン1.3.1_04以降 |
| Servletコンテナ | Servlet2.2/JSP1.1 以降に対応したもの | Servlet2.3/JSP1.2 以降に対応したもの |
| 実行ライブラリ | Apache Struts プロジェクトから提供されるもの | 開発ツール(またはアプリケーションサーバ)ベンダー各社から提供される。Sun Microsystems の Webサイトから Reference Implementation の入手も可能 |
| 表1■実行に必要な環境 | ||
アプリケーションは、テキストボックスと送信ボタンのみのシンプルな入力フォームがある画面と入力された値を表示するのみの画面、2つの構成だ。
↓
↓
それぞれ作成するコンポーネントは、次に挙げる表2の通りだ。
| 作成コンポーネント | Struts | JSF |
|---|---|---|
| デプロイメントディスクリプタ | web.xml | web.xml |
| 入力値を保持するコンポーネント | WelcomeForm.java(ActionForm) | WelcomeBean.java(BackingBean) |
| ビジネスロジックを実行するコンポーネント | WelcomeAction.java(Action) | WelcomeBean.java(BackingBean) |
| 画面 | index.jsp(入力画面)、welcome.jsp(ようこそ画面) | index.jsp(入力画面)、welcome.jsp(ようこそ画面) |
| 設定ファイル | struts-config.xml | faces-config.xml |
| メッセージリソースファイル | struts-config.xml にメッセージリソース名を設定する | faces-config.xmlにメッセージリソース名を設定する |
| 表2■作成するコンポーネント | ||
welcome_struts.zip がStrutsアプリケーションのサンプルであり、welcome_jsf.zip がJSFアプリケーションのサンプルだ。サンプルアプリケーションはどちらも、Java2 SDK Standard Edition 1.4.2_06、Tomcat 5.0.28という環境で作成している。
また、両サンプルともEclipseプロジェクト(Eclipse3.0.1とSysdeo Tomcat Launchar Pluginを使用)として作成してあるため、Eclipseのワークスペースへインポート可能だ(※5)。
Strutsのバージョンは1.2.4だ。JSFは、Sun MicrosystemsのReference Implementationバージョン1.1.01、およびJakarta Taglibs Standard Tag Library 1.1.2(※6)を使用している。サンプルアプリケーションを実行するには、Tomcatを起動して、ブラウザから以下のアドレスへアクセスすればよい。
http://localhost:8080/welcome_struts/index.jsp(Strutsアプリケーションのサンプル) http://localhost:8080/welcome_jsf/faces/index.jsp(JSFアプリケーションのサンプル)
また、Antを使用できる環境であればEclipseを使わずにAntでビルド、デプロイすることも可能だ。手順は以下の通りだ。
※5 プロパティファイルについて
どちらのサンプルも、ソースパッケージツリーのresourcesパッケージにapplication.propertiesというプロパティファイルがある。
プロパティファイルは、日本語などのマルチバイト文字はユニコードエスケープする必要があるが、Eclipseではユニコードエスケープ処理を行うプラグインなどを使っていない場合には、Eclise上からAntを実行してほしい。
その際に、ターゲットは"compile"を指定する。compliターゲットにはユニコードエスケープ処理が含まれている。デフォルトのターゲットは"deploy"だが、deployを指定すると、Tomcat/webappsディレクトリにアプリケーションのファイルがコピーされる。Eclipse + Tomcat Launcher Plugin環境ではTomcat/webappsディレクトリへのファイルコピーは不要だ。
※6 Jakarta Taglibs Standard Tag Library。JCPで定められているJSTL(Java Standard Tag Library)仕様のJakarta Projectによる実装。
Strtusアプリケーション、JSFアプリケーション、それぞれの処理の流れは次ページに挙げる図1、図2のようになる。
Copyright © ITmedia, Inc. All Rights Reserved.