
| [特別企画] JavaServer Facesを理解する(後編) |
| JSFによるWebアプリケーション開発 |
五十嵐由
2003/8/27
前回「JSFの構造を理解する」では、「JavaServer
Faces」(以下JSF)の概要を説明した後、「Java
Web Services Developer Pack」(以下JWSDP)に付属するサンプルアプリケーションを動作させてみました。今回は、筆者が作成したJSFアプリケーションを紹介しながら、より深く理解していただくことにします。
解説を始める前に、前回の記事を読んでもJSFのメリットがよく分からないという読者のために、再度JSFを使用するメリットを以下に整理します。
|
●ステート情報の保持 ●Webアプリケーションを構築するうえで必要なコンポーネントが用意されている |
これまでのJSPとServlet、JavaBeansを用いたWebアプリケーションを実装する際に必要だった面倒な処理をなくし、あればよいと皆が感じていた機能を提供してくれるのがJSFだといえるでしょう。また、JSFがWebアプリケーションのユーザーインターフェイスを構築するための標準フレームワークとなれば、開発モデルの統一化を図ることもでき、開発効率やサポート効率の向上も期待できるでしょう。
さて、それでは、JSFアプリケーションの構築に話を移しましょう。
|
JSFアプリケーションの構築 |
筆者が作成したアプリケーションはJWSDPに付属する「Car Demo Sample」を簡略化したものです。アプリケーションのソースコードとWARパッケージはこちらからダウンロードしてください。
アプリケーションの内容は以下のとおりです。
| (1) | カタログから車を選択 |
| (2) | 車のパッケージ(Custom、Deluxe)、オプション(エンジン、カーオーディオ、GPS、セキュリティシステム)の選択、変更および費用の計算 |
| (3) | 買い物内容の確認 |
| (4) | クレジットカード番号、カードの使用期限を入力し、買い物の完了 |
| (5) | お礼メッセージの表示 |
また、アプリケーションのページ構成とクラスの関係は下図のようになります。
![]() |
| 図1 アプリケーションのページ構成とクラスの関係 |
次に、JSFアプリケーションのディレクトリ、ファイル構成(イメージファイルなどは省略)を説明します。JSFアプリケーションのディレクトリ構造は従来のWebアプリケーションと同様です。アプリケーションのルートディレクトリにはJSP、HTMLなどのファイルを配置し、WEB-INFディレクトリにfaces-config.xml、web.xmlなどのアプリケーション定義ファイル、WEB-INF/classesディレクトリに作成したクラスファイル、WEB-INF/libディレクトリにアプリケーションに必要なライブラリを配置します。
JSFアプリケーションを実行するために必要なライブラリは下図を参考にしてください(ただし、今回のアプリケーションはJWSDPにバンドルされているTomcatにデプロイしますので、下図のすべてのJarファイルをWEB-INF/libに用意しなくても動作します)。
![]() |
| 図2 ディレクトリ構成 (クリックすると拡大します) |
次に、筆者がJSFアプリケーションを作成した手順を紹介しましょう。以下のような手順で作成しました。
| (1) | モデル、ビジネスロジック |
| ・モデル、ビジネスロジッククラスの実装 ・コンフィグレーションファイルの設定 |
|
| (2) | カスタムコンバータ、カスタムバリデータ、タブハンドラ |
| ・クラスの実装 ・コンフィグレーションファイルの設定 |
|
| (3) | UIコンポーネント、JSFタグライブラリを使用したJSPの作成 |
| (4) | ページナビゲーションの定義、そのほか |
それでは、作成した順にアプリケーションの処理内容を説明していきましょう。
| 1/4 |
|
INDEX |
||
| JavaServer Facesを理解する(後編) | ||
| Page1 JSFアプリケーションの構築 |
||
|
Page2 |
||
| Page3 カスタムコンバータ、カスタムバリデータ、タブハンドラ |
||
| Page4 UIコンポーネント、JSFタグライブラリを使用したJSPの作成 ページナビゲーションの定義 まとめ |
||
| INDEX | |
| 特別企画:JavaServer Facesを理解する | |
| 前編 JSFの構造を理解する | |
| 後編 JSFによるWebアプリケーション開発 | |
| 連載記事一覧 |
TechTargetジャパン
- Scalaのパッケージ、アクセス修飾子、オブジェクト継承 (2012/5/22)
インポート、パッケージオブジェクト、抽象クラス/抽象メソッド、オーバーライド、final、シールドクラスなども - 基幹系システムでCloud SQLは使えるか試してみた (2012/5/17)
サンプルとしてMRPシステムを作成して動かし、「再帰呼び出し」などのパフォーマンスを測定して検証してみます - アジャイル管理ツール9選+Pivotal Tracker入門 (2012/5/14)
群雄割拠のアジャイルプロジェクト管理ツールを9つ紹介し、特に注目を集めているPivotal Trackerの基本的な使い方を解説します - サーバサイドJSやJavaでWebアプリが作れるXPages (2012/5/11)
Notes/Dominoの資産をサーバサイドJavaScriptやJavaで操作し、HTMLやJavaScript、CSSをUIにできる技術を紹介
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -


