StrutsとJSFは共存、統合どちらへ(4/8 ページ)

» 2005年01月19日 09時15分 公開
[阿島哲夫(カサレアル),ITmedia]

アプリケーションの作成

 ここで、見た目や機能がほぼ同一のアプリケーションをStrutsとJSFで作成して、それぞれどのようなコンポーネントを、どのように作成するのかを見てみよう。

 Strutsアプリケーション、JSFアプリケーションの実行に必要な環境は表1の通りだ。Strutsのほうが少し古い環境にも対応している。

表1■実行に必要な環境
  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 の入手も可能

 アプリケーションは、テキストボックスと送信ボタンのみのシンプルな入力フォームがある画面と入力された値を表示するのみの画面、2つの構成だ。

画面■Strutsによる画面例その1

         ↓

画面■Strutsによる画面例その2
画面■JSFによる画面例その1

         ↓

画面■JSFによる画面例その2

 それぞれ作成するコンポーネントは、次に挙げる表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にメッセージリソース名を設定する

サンプルアプリケーションの実行

 welcome_struts.zip がStrutsアプリケーションのサンプルであり、welcome_jsf.zip がJSFアプリケーションのサンプルだ。サンプルアプリケーションはどちらも、Java2 SDK Standard Edition 1.4.2_06、Tomcat 5.0.28という環境で作成している。

welcome_struts.zip ダウンロード(約1.4Mバイト)
welcome_jsf.zip ダウンロード(約1.7Mバイト)

 また、両サンプルとも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でビルド、デプロイすることも可能だ。手順は以下の通りだ。

1. サンプルアプリケーションを解凍したディレクトリにあるbuild.propertiesファイルを読み込み、catalina.homeの値がTomcatインストールディレクトリに正しく設定されていることを確認する。

2. コマンドプロンプトを開き、サンプルアプリケーションを解凍したディレクトリに移動する。

3. 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.

注目のテーマ