ページの先頭行へ戻る
 Apcoordinator入門ガイド

4.2.1 構成の設計

ホテル予約アプリケーションを JavaServer Facesアプリケーションとして作成する前に、以下の手順でアプリケーション設計を行います。

1 画面の設計

使用する入出力ページおよび設定する入出力フィールドを設計します。

各画面に対して、それぞれ入出力ページを作成します。

画面名

JSPファイル名

説明

予約状況

reserveLook.jsp

1週間の予約状況を表示します。

予約詳細

reserveDetails.jsp

詳細な予約情報を入力し予約処理を行います。

予約確認

reserveConfirm.jsp

予約内容の確認を行います。

予約終了

reserveTermination.jsp

予約を完了します。最初の画面に戻り別の予約を行うこともできます。

予約詳細画面に必要な入出力フィールド、配置を考え、画面を設計します。

予約詳細画面を次に示します。

上記の画面から、予約詳細画面で入力または出力が必要な項目は8つあります。

同様に、その他の画面についても必要な入出力フィールド、配置を考え、画面を設計します。

予約確認画面で必要な項目は次の7つです。

予約状況画面で必要な項目は次の2つです。

予約終了画面で必要な項目は次のひとつです。

以上の3画面ではデータを入力するフィールドはありません。

2 Managed Beanの設計

それぞれの画面領域に対して Managed Bean、入出力項目、およびアクション項目の整理を行います。Managed Beanは、入出力ページとアプリケーションの間で、データのやりとりを仲介します。入出力ページ、Managed Bean、イベント処理の関係は以下の図のようになります。

アプリケーション内で関係の深いデータを1つのManaged Beanでまとめて保存することにより、それらのデータの扱いが容易になります。画面構成のみ変えたい場合は入出力ページのレイアウトを変えるだけでよく、Managed Beanには手を加える必要はありません。また、イベント処理などユーザアプリケーションの変更も、Managed Beanの項目が変わらない限りは、入出力ページ側に手が入ることはありません。

まず、どのような種類のbeanを用意するかを考えます。Managed Beanを作成するときには以下のことに注意します。

1 画面の設計”で定義した各領域で使用するデータを考えます。ここでは、1週間の予約状況を1つのManaged Beanにします。作成するManaged Beanを以下に示します。

Managed Bean名

クラス名

説明

reserveBean

ReserveBean

1件の予約内容をもちます。

以下にReserveBeanが持つデータ項目を示します。

到着日

「予約詳細画面」で指定された「到着日」を持ちます。

このデータは「予約確認画面」の「ご利用期間」の表示にも使用します。

出発日

「予約詳細画面」で指定された「出発日」を持ちます。

このデータは「予約確認画面」の「ご利用期間」の表示にも使用します。

部屋の種別

「予約詳細画面」で指定された「部屋の種別」を持ちます。

このデータは「予約確認画面」の「部屋の種別」の表示にも使用します。

宿泊人数

「予約詳細画面」で指定された宿泊人数を持ちます。

オプション

「予約詳細画面」で指定された「オプション」を持ちます。

このデータは「予約確認画面」の「オプション」の表示にも使用します。

料金

「予約詳細画面」で指定された条件で料金を計算し「予約確認画面」で表示します。

エラーメッセージ

予約内容に誤りがあったときに表示するメッセージを持ちます。このデータはイベント処理で使用します。

予約状況

日付ごとの予約状況の一覧表です。

上記データ項目ごとにプロパティ名を決めます。

「プロパティ名」は入出力ページがManaged Beanから特定のデータを取り出すときの名前として使われます。ここでは以下のようにプロパティ名を定義します。プロパティ名は、項目から連想しやすい名前にします。

データ項目名

プロパティ名

到着日

arrivalDay

出発日

departureDay

部屋の種別

roomType

宿泊人数

people

オプション

options

料金

charge

エラーメッセージ

message

予約状況

reserveLookTable

3 画面項目⇔Beanの対応の設計

画面入出力項目に関しての整理を行います。各入出力ページの各入出力項目(フォームまたはApcoordinatorでサポートしているGUI部品)について以下の事柄について一覧を作成します。

「プロパティ名」は、“2 Managed Beanの設計”で定義したものを使用します。入出力ページは、関連するManaged Beanからこのプロパティ名を使い、各項目の値を取得します。

「Managed Bean名」は各入出力ページに対応するManaged Bean名を表します。

「I/O」は、ページの各項目について、入力のみであれば"I"、出力(表示)のみであれば"O"、入力出力の両方であれば"I/O"となります。

「データの意味」はプロパティ名に対応するデータの意味です。

reserveDetails.jsp

プロパティ名

Managed Bean名

I/O

データの意味

arrivalDay

reserveBean

I/O

到着日

departureDay

I/O

出発日

roomType

I/O

部屋の種別

people

I/O

宿泊人数

options

I/O

オプション

message

O

エラーメッセージ

reserveConfirm.jsp

プロパティ名

Managed Bean名

I/O

データの意味

arrivalDayと
departureDay

reserveBean

O

ご利用期間

roomType

O

部屋の種別

options

O

オプション

charge

O

料金

reserveLook.jsp

プロパティ名

Managed Bean名

I/O

データの意味

reserveLookTable

reserveBean

O

利用状況

reserveTermination.jspについては、Managed Beanに対応付ける項目はありません。

4 画面遷移の設計

それぞれの画面について、どのボタンをクリックしたときにどの画面へ遷移するかを設計します。以下の事柄について一覧を作成します。

「ボタン」は、クリックするボタンです。

「条件」は、同じボタンがクリックされた場合でも条件によって別の画面に遷移する場合に、その条件を表します。

「遷移先画面名」は、遷移する画面名を表します。

「遷移先ページ」は、遷移先の画面のJSPファイルを表します。

「コメント」は、必要に応じてコメントを指定します。

reserveDetails.jsp

ボタン

条件

遷移先画面名

遷移先ページ

コメント

予約する

入力内容に誤りがない場合

ok

reserveConfirm.jsp

予約確認画面へ

入力内容に誤りがある場合

failed

reserveDetails.jsp

予約詳細画面を再表示

予約状況へ戻る

-

back

reserveLook.jsp

予約状況画面へ

reserveConfirm.jsp

ボタン

条件

遷移先画面名

遷移先ページ

コメント

OK

-

ok

reserveTermination.jsp

予約終了画面へ

キャンセル

-

cancel

reserveDetailes.jsp

予約詳細画面へ

reserveLook.jsp

ボタン

条件

遷移先画面名

遷移先ページ

コメント

予約する

-

success

reserveDetails.jsp

予約詳細画面へ

reserveTermination.jsp

ボタン

条件

遷移先画面名

遷移先ページ

コメント

初期画面へ

-

success

reserveLook.jsp

予約状況画面へ