検索
特集

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

フレームワークのStrutsとJSFは目的が似ている。しかし、JSFは後発ながらJCPのJava標準規格として登場した。新たなテクノロジーは、完全に補完する役目を担うのか? コードベースで徹底比較していく。

PC用表示 関連情報
Share
Tweet
LINE
Hatena

アプリケーションの作成

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

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

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 アプリケーションは、テキストボックスと送信ボタンのみのシンプルな入力フォームがある画面と入力された値を表示するのみの画面、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という環境で作成している。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 また、両サンプルとも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のようになる。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る