このチュートリアルでは、Oracle JDeveloper 11gを使用してWebアプリケーションを構築します。データ・モデルを構築するため、EJBダイアグラマを使用して、EJB 3.0とJava Persistence API(JPA)を活用します。Webクライアントの場合、JavaServer Faces(JSF)が使用されます。マスター/ディテール・ページと編集ページはユーザー・インタフェースに含まれています。
所要時間
1時間
|
概要 |
|
シナリオ |
|
前提条件 |
|
データベース接続の作成 |
|
|
|
|
|
|
|
|
|
|
|
JSFページの実行 |
|
まとめ |
注:各手順に関連したスクリーンショットのみを表示する場合は、それぞれの手順にあるアイコンの 上にカーソルを置いてください。スクリーンショットをクリックすると、非表示になります。
次に、部門と従業員の情報を参照するためにマスター/ディテール・フォームを作成します。この基本的なマスター/ディテール・ページの作成後、選択した従 業員の編集ページを作成します。
アプリケーションの開発とテストをおこないながら、JDeveloperの組込みJava EEアプリケーション・サーバーを使用します。
1. |
Oracle JDeveloper 11g製品版にアクセスできるか、または インストール済みであること。この製品は、 Oracle Technology Networkからダウンロードできます。
|
2. |
Oracle 10gまたは11gに付属のOracle Sample Schemaにアクセスできるか、またはインストール済みであること。 このチュートリアルでは、HRスキーマを使用します。とくにページは、実行時にDepartment表およびEmployee表と連動 します。 HRスキーマのインストールおよびOracle JDeveloper 10g内における接続の作成手順は、次のURLを参照してください。 http://www.oracle.com/technology/obe/obe11jdev/11/common/connection11g.htm
|
3. |
「 スタート」→「 すべてのプログラム」 →「 Oracle Fusion Middleware」→「 JDeveloper Studio 11.1.1.0.0」を選択して、Oracle JDeveloperを起動します。
|
4. |
Migrate User Settingsダイアログ・ボックスが開いたら、「 No」 をクリックします。 ユーザー・ロールを設定するよう尋ねられたら、「 Default Role」 を選択します。 Tip of the Dayウィンドウを 閉じます。
|
5. |
JDeveloper IDEが表示されます。 |
データベースに接続していない場合は、以下の手順で接続します。
1. |
アプリケーション・ナビゲータの「 Database Navigator」 タブをクリックします。Database Navigatorタブが表示されていない場合は、JDeveloperのメイン・メニューから「 View」 →「 Database Navigator」を選択してください。
|
||||||||||||||||||||||
2. |
「 IDE Connections」ノードを右クリックし、コンテキスト・メニューから「 New Connection」を選択します。 |
||||||||||||||||||||||
3. |
Create Database Connectionダイアログの最初のセクションで、次の値を入力します。
注:パスワードは暗号化されるので、安全にデプロイされます。 Oracle (JDBC) Settingsセクションで、次の値を入力します。
次のいずれかを設定して、環境に最適なソリューションを選択します。
|
||||||||||||||||||||||
4. |
「 Test Connection」をクリックします。 データベースが使用可能で接続の詳細が正しい場合、ステータスには Success!と 表示されます。 エラーが発生した場合、接続設定を確認します。必要な変更をおこない、接続を再試行してください。 接続に成功したあと、「 OK」をクリックして接続を完了します。
|
||||||||||||||||||||||
5. |
データベース・ナビゲータは、次のように表示されます。
|
||||||||||||||||||||||
これで、このチュートリアルで構築するアプリケーションに、データを供給するデータベースへの接続が完成しました。 次の項で、この接続を使用します。 |
次に、JDeveloperでアプリケーションを作成し、さらにアプリケーション用のデータ・モデルを作成しま す。
|
新規アプリケーションおよびプロジェ クトの作成 |
|
永続化モデルの作成 |
|
データ・モデルの作成とテスト |
|
|
|
JDeveloperでは、常にアプリケーションに含まれるプ ロジェクトを使用して作業をおこないます。アプリケーションは、制御構造の最上位にあります。
コンポーネントを作成する前に、まず、アプリケーションとプロジェクトを作成する必要があります。それには、以 下の手順を実行します。
1. |
「 Application」タブをクリックして、アプリケーション・ナビゲータに戻ります。 「 New Application」アイコンをクリックします。
|
2. |
Create Applicationダイアログ・ボックスにアプリケーション名を HR_EJB_JPA_App と入力します。アプ リケーション名を入力すると、ディレクトリ名が自動的に変更されることを確認してください。 アプリケーション・パッケージの接頭辞として oracle と 入力します。 Application Templateリストから「 Generic Application」 を選択します。これにより、アプリケーションと単一の未構成プロジェクトが作成されます。 「 Next」をクリックします。
|
3. |
Create Projectダイアログで、 Project Nameを EJBModelに 設定して、「 Finish」をクリックします。
|
4. |
Navigatorペインで「 Database Navigator」タブをクリックします。
|
5. |
IDE接続リストで「 HRConn」接続を選択し、 HR_EJB_JPA_Appノー ドにドラッグ・アンド・ドロップして、アプリケーションに対しその接続を有効化します。
|
6. |
「 Application Navigator」タブをクリックします。 |
ここでは、Oracle Application Server EJB 3.0 Entity Beanを使用して、部門および従業員の永続化モデルを作成します。
EJB 3.0 Entity Beanを作成するには、以下の手順を実行します。
1. |
アプリケーション・ナビゲータで「 EJBModel」ノードを右クリックし、コンテキスト・メ ニューから「 New」を選択します。
|
2. |
New Galleryで、カテゴリの「 All Technologies」→「 Business Tier」→「 EJB」を選択し、「 Entities from Tables」 項目をダブルクリックします。
|
3. |
Select EJB Versionで、「 EJB 3.0 -- JPA Entities」を EJBバージョンとして選択し、「 Next」をクリックします。
|
4. |
「 Next」をクリックして、永続性ユニットの定義をスキップします。
|
5. |
Type of Connectionページで、「 Online Database Connection」 オプションを選択し、デフォルトのOffline Database名を受け入れます。「 Next」をクリックしま す。
|
6. |
Database Connection Detailsページで、使用する接続として「 HRConn」 を選択します。 「 Next」をクリックします。
|
7. |
「
Query」をクリックし、HRスキーマに使用可能なオブジェクトを取得します。次に、「
DEPARTMENTS」 と「
EMPLOYEES」を選択し、右矢印ボタン
「 Next」をクリックします。
|
8. |
このステップでは、パッケージ名が oracleであることを確認します。 「 Next」に続き、「 Finish」をクリックします。
|
9. |
アプリケーション・ナビゲータで、 Departmentsと Employeesに 1つずつjavaファイルが作成されます。
|
10. |
Save Allアイコン「
|
11. |
アプリケーション・ナビゲータで「 EJBModel」ノードを右クリックし、「 New」 を選択します。
|
12. |
New Galleryで、カテゴリとして「 Business Tier」→「 EJB」 を選択し、「 EJB Diagram (JPA/EJB 3.0)」項目をダブルクリックします。
|
13. |
Create EJB Diagramダイアログで、ダイアグラム(EJB Diagram1)用のデフォルト名を EJB 3に変更し、パッケージ名が oracle で あることを確認します。 「 OK」をクリックします。 Associate Diagram With Persistence Unitダイアグラムで「 OK」 をクリックし、提示されたPersistence Unit EJBModel (EJBModel.jpr)を受け入れます。
|
14. |
ダイアグラム・エディタで新しい空のダイアグラムが開きます。
|
15. |
アプリケーション・ナビゲータから「 Departments」エンティティと「 Employees」 エンティティを選択し、ダイアグラムにドラッグ・アンド・ドロップします。
|
16. |
ダイアグラムは、DepartmentsとEmployeesに対して以前に実行されたリバース・エンジニアリング・アクションに対応 するEJBコンポーネントを表示します。ダイアグラムのレイアウトを再編成し、エンティティが水平に整列するようにします。 リレーションシップを選択するには、右クリックして、コンテキスト・メニューからStraightenライン・オプションを使用します。
|
17. |
Save Allアイコン「
|
ここでは、従業員レコードおよび部門レコードを検索するメソッドを実装したSession Beanを作成します。
1. |
コンポーネント・パレットで、「 EJB Components」ライブラリを選択し、「 EJB Nodes」を開きます。
|
||||||||||||||||
2. |
Session Beanコンポーネント「」を選択し、ダイアグラムにドラッグ・アンド・ドロップします。 Create Session Beanウィザードが開きます。必要に応じて、Welcomeステップで「 Next」 をクリックします。
|
||||||||||||||||
3. |
EJB Name and Optionsステップで、EJB Nameを HRFacadeに設定 し、次の値が適切に設定されていることを確認します。
「 Next」をクリックします。
|
||||||||||||||||
4. |
Session Facadeステップで、
このプロジェクトのエンティティは、ツリー・ コントロールのノードとして表示されます。チェック・ボックスを選択して、このエンティティが公開しているすべてのエンティティ・メソッドを指定できま す。また、ノードを開いてメソッドのサブセットも選択できます。
|
||||||||||||||||
5. |
Class Definitionステップで、Beanクラスのフルネームが oracle.HRFacadeBeanで あることを確認してから、「 Next」をクリックします。
|
||||||||||||||||
6. |
次のステップでは、 Remoteと Localインタフェースの 実装を選択します。 リモート・インタフェースは、Javaクライアントなどの個別の仮想マシンで実行される クライアント・アプリケーションで使用されます。一方ローカル・インタフェースは、Webクライアントなどの同じ仮想マシンで実行されるクライアント・ア プリケーションで使用されます。 「 Next」をクリックして、作成したクラスの内容を確認します。次に、「 Finish」 をクリックします。
|
||||||||||||||||
7. |
アプリケーション・ナビゲータは、次のようになります。 Session Beanは、3つのファイルで構成されています。Session Beanコードを含む HRFacadeBean、 リモート・クライアントのBean機能を表す HRFacade、およびローカル・クライアントの機能を表す HRFacadeLocalで す。
|
||||||||||||||||
8. |
ダイアグラムの「 Employees」Entity Beanをダブルクリックして、クラスのソース・コードを開きます。
|
||||||||||||||||
9. |
名前付き問合せを使用すると、設計時に問合せを定義し、実行時に使用できます。ウィザードにより、NamedQueryメタデータ文が Employeeエンティティ内に1つ作成されました。この問合せは、employees表からすべての行を取得します。 @NamedQueries({
注: @ で 始まるJavaコードの記号は、アノテーションと呼ばれます。アノテーションを使用すると、メタデータをオブジェクトに追加できます。アノテーションの例 は、以下のとおりです。
|
||||||||||||||||
10. |
最後の@NamedQuery文の最後にカンマを追加します。次に、従業員を名前によって取得する問合せをクラスに追加します。 以下のコードを追加します。
コードは次のようになります。 @Entity
必要に応じて、[Alt]キーと[Enter]キーを押して、 javax.persistence.NamedQueriesラ イブラリをインポートします。 注: これらのオブジェクトがほかのJavaファイ ルと異なる点は、EJBエンティティとしてオブジェクトを識別するアノテーションがあることです。EJB 3.0およびJPAのおもな特長は、古いバージョンのデプロイメント・ディスクリプタの代わりにメタデータ・アノテーションを使用して、オブジェクト・リ レーショナル・マッピングを含むエンティティを作成できることです。
|
||||||||||||||||
11. |
Makeアイコン「
Message - Logウィンドウでエラーが表示されていないか確認します。
|
||||||||||||||||
12. |
以下の手順を実行して、新しいメソッドをSession Beanに追加します。 アプリケーション・ナビゲータで「 HRFacadeBean」ノードを右クリックし、コンテキス ト・メニューから「 Edit Session Facade」を選択します。
|
||||||||||||||||
13. |
ダイアログの「 Employees」ノードを展開します。 新しい名前付き問合せの getEmployeesFindByNameが公開可能 なメソッドとして表示されるので注意してください。 それを選択し、「 OK」をクリックします。
|
||||||||||||||||
14. |
JDeveloperは、サンプル・クライアントを作成して、EJBをテストします。実行するには、「 HRFacadeBean」 を右クリックし、コンテキスト・メニューから「 New Sample Java Client」を選択します。
|
||||||||||||||||
15. |
「 IntegratedWLSConnection」を Application Server Connectionとして選択します。 「 OK」をクリックします。
|
||||||||||||||||
16. |
HRFacadeClientクラスのコードを確認し、 getEmployeesFindByName()メソッドのために報告されているエラーを修正します。次に、以下のように "P%"値 パラメータを追加します。 Save Allアイコン「
|
||||||||||||||||
17. |
アプリケーション・ナビゲータで「 HRFacadeBean」を右クリックします。次に、コンテキ スト・メニューから「 Run」を選択して、内蔵OC4JサーバーのFacade Beanを起動します。 WebLogicServerが開始するまで待機します。
|
||||||||||||||||
18. |
「 HRFacadeClient」を右クリックし、コンテキスト・メニューから「 Run」 を選択します。
|
||||||||||||||||
19. |
ログ・ウィンドウは、クライアントが格納する3つのメソッドに基づくデータベース・データを返します。
|
||||||||||||||||
20. |
FindByNameメソッドの結果の表示を向上させるには、HRFacadeClient javaクラスで、 getEmployeesFindAll()メ ソッドに対応する for ルー プと getDepartmentsFindAll()メソッドに対応する for ループをコメント・ア ウトします。コードは次のようになります。
|
||||||||||||||||
21. |
Makeボタン「
|
||||||||||||||||
22. |
「 HRFacadeClient」クラスを右クリックし、コンテキスト・メニューから「 Run」 を選択します。
|
||||||||||||||||
23. |
ログ・ウィンドウには、' P%'句によって返される行が表示されます。 |
ここでは、従業員レコードおよび部門レコードを検索するメソッドを実装したSession Beanを作成します。
1. |
新しい永続性ユニットを作成して、Java EEコンテナの外部でJavaサービスを実行します。 META-INFの「 persistence.xml」を右ク リックし、コンテキスト・メニューから「 New Java Service Facade」を選択します。
|
2. |
Java Service Classパネルでは、新しい永続性ユニットを作成(次のパネル)するか、既存のユニットを使用するかを選択できます。「 Choose a Persistence Unit or Create one in the next Panel」を選択し、「 Generate a main() method」チェック・ボックスにチェックを入れます。 「 Next」をクリックします。
|
3. |
永続性ユニットに outsideという名前をつけます。「 JDBC Connection」を選択します。JDBC接続が HRConnに設定されていることを確認して ください。 「 Next」をクリックします。
|
4. |
すべてのメソッドがデフォルトで選択されています。 いくつかのメソッドの選択を次のように解除します("ByRange"メソッドの選択を解除します)。 「 Next」→「 Finish」をクリックします。
|
5. |
ソース・エディタ・ウィンドウの JavaServiceFacadeクラスに対して、 // TODOコメントのあとに新しい行を追加し、次の文を入力 します。 Employees a = javaServiceFacade.getEmployeesFindByName("P%").get(0); 構文の入力を支援するコード・コーチを使用できます([Ctrl]+[Space])。 sop とタイプし、[CTRL]キーと [Enter]キーを押してSystem.out.println()文を挿入します。次のように a.getLastName()を丸括弧内に追加します。 // TODO
|
6. |
Makeボタン「
|
7. |
アプリケーション・ナビゲータで「 JavaServiceFacade」ノードを右クリックし、コ ンテキスト・メニューから「 Run」を選択します。
|
8. |
ログ・ウィンドウは、Java EEコンテナの外部で実行されるクラスの実行結果を表示します。取得したレコードの最初の lastNameが返されます。
|
9. |
META-INFの「 persistence.xml」ノード をダブルクリックして、ファイルの内容を表示します。
|
10. |
両方の永続性ユニットが表示されます。Java EE内部のデフォルトの永続性ユニットとJava EE外部の新しい永続性ユニットが実行されます。「 Source」タブをクリックして、詳細を確認します。 |
EJB Session BeanからADFデータ・コントロールを作成するには、次のステップを実行します。
1. |
Oracle ADFフレームワークのデータ・コントロールとしてEJBを公開します。これによって、ユーザー・インタフェースをEJBにバインドする方法が簡素化され ます。ADFフレームワークの詳細は、下記のWebサイトを参照してください。
アプリケーション・ナビゲータで「 HRFacadeBean」ノードを右クリックし、コンテキス ト・メニューから「 Create Data Control」を選択します。
|
2. |
Choose EJB Interfaceダイアログで、「 Local」を選択し、「 OK」 をクリックします。 Save Allアイコン「
|
3. |
アプリケーション・ナビゲータは、次のように表示されます。
|
4. | EJBModelプロジェクト・ノードは、閉じることができます。 |
1. |
アプリケーション名バーで、「 Application Menu」アイコンをクリックします。 コンテキスト・メニューから「 New Project」を選択します。
|
2. |
New Galleryで、「 Generic Project」項目を選択します。 「 OK」をクリックします。
|
3. |
Create Projectダイアログで、 Project Nameを UserInterfaceに 設定して、「 Finish」をクリックします。
|
4. |
アプリケーション・ナビゲータで「 UserInterface」ノードを右クリックし、コンテキス ト・メニューから「 Project Properties」を選択します。
|
5. |
Project Propertiesダイアログで、「 JSP Tag Libraries」ノー ドを選択します。「 Distributed libraries」を選択し、「 Add」 ボタンをクリックします。
|
6. |
Tag Librariesリストで、「 ADF Faces Components 11」を選択 します。 「 OK」をクリックします。 ライブラリがプロジェクトに追加されます。
|
7. |
Project Propertiesダイアログで、「
Technology scope」ノード を選択します。Available Technologiesリストで、「
JSF」を選択し、右矢印ボタン
「
OK」をクリックします。 Save Allアイコン「
|
8. |
アプリケーション・ナビゲータは、次のように表示されます。 |
Oracle JDeveloperのJSFナビゲーション・モデラーを使用して、アプリケーションのページの計画と作成をダイアグラムでおこなうとともに、相互のナビ ゲーションをおこないます。
1. |
アプリケーション・ナビゲータで「 UserInterface」→「 Web Content」→「 WEB_INF」→「 faces-config.xml」 ノードをダブルクリックして、ページ・フロー・ダイアグラムを開きます。
|
2. |
空のダイアグラムが開きます。ダイアグラム・エディタの右側に コンポーネント・パレットがありま す。これを使用して、JSFナビゲーション・モデルのコンポーネントを作成します。 |
3. |
コンポーネント・パレットのJSFナビゲーション・ダイアグラム・ページで
JSF Page「
|
4. |
コンポーネント・パレットから「 JSF Page」をドラッグし、前のアイコンの横にドロップしま す。ページの名前を queryに変更します。
|
5. |
コンポーネント・パレットで
JSF Navigation Case「
|
6. |
デフォルトのラベルである「 success」をクリックして、 query と上書きします。 Navigation Caseの上に警告アイコンがあることに注意してください。これは、JSFページが作成されていないために発生します。つまり、Navigation Caseは存在していないページを探しているということです。この警告は対応するページが作成されるとなくなります。
|
7. |
JDeveloperは、 faces-config.xmlファイルの3つのビューを提供します。 ここではダイアグラム・ビューが使用されていますが、直接的なソースへのアクセスと同じように宣言ダイアログを通じて同じ情報にアクセスできます。 画面の下部にある「 Overview」タブをクリックします。左側の表の「 Navigation Rules」をクリックし、既存のNavigation Ruleを表示します。 画面の下部にある「 Source」タブをクリックします。 <from-view-id>タ グはソース・ページを識別し、 <to-view-id>タグはリンク先ページを識別します。
|
8. |
「 Diagram」タブをクリックしてダイアグラム・ビューに切り替え、コンポーネント・パレットの「 JSF Navigation Case」を選択します。ソースJSFページのアイコン( query)をク リックし、ナビゲーション用のリンク先JSFページのアイコン( browse)をクリックします。
|
9. |
デフォルトのラベルである「 success」を選択して、 browse と上書きします。
|
10. |
これで、ダイアグラムは次のように表示されます。
|
11. | Save Allアイコン「
|
次に、ADF Facesコンポーネントを使用して、Department Employees Master DetailページのJavaServer Faces Pageを作成します。
1. |
Page Flowダイアグラムで、「 browse」アイコンをダブルクリックし、Create JSF JSPウィザードを起動します。
|
2. |
ファイル名が browse.jspxに設定されます。「 Create as XML Document」オプションを選択します。 「 OK」をクリックします。 これで、空のbrowse.jspxページができました。次の手順に従って、データ・ バインドされたADF Facesコンポーネントをページに追加します。このコンポーネントは、部門に属する従業員と部門を表示します。
|
3. |
コンポーネント・パレットから、ADF Facesライブラリの「 Layout」セクションを選択 し、「 Panel Stretch Layout」コンポーネントをページにドラッグします。 |
4. |
コンポーネント・パレットから、ページの中央に「 Panel Splitter」コンポーネントを ドラッグします(カーソルはcenterタグの左側にあります)。
|
5. |
「 Data Controls」コンポーネントを開き、 HRFacadeLocalノー ドを展開します。次に、最初のファセット内の「 DepartmentsFindAll」ノードをドラッグ・アンド・ド ロップします。 ポップアップ・メニューから「 Forms」→「 ADF Read-only Form」を選択します。
|
6. |
Edit Form Fieldsで、「 Include Navigation Controls」 オプションを選択します。 「 OK」をクリックします。
|
7. |
Data Controlsで、「 departmentsFindAll」ノードを展開し、「 employeesList」 ノードを選択して、2番目のファセットにドロップします。 ポップアップ・メニューから「 Tables」→「 ADF Read-only Table」を選択します。
|
8. |
Edit Table Columnsダイアグラムで以下を除くすべての列を削除します。
「 OK」をクリックします。 この時点で、ページは次のように表示されます。 |
9. |
Structureペインで、「 af:panelSplitter」ペインを選択し、プロパティ・ インスペクタでOrientationを verticalに設定します。 |
10. |
「 af:panelStretchLayout」タグを選択し、プロパティ・インスペクタを使用し て、「 Style and Theme」タブ→「 Box」タブを選択します。 Employees表がレイアウト・エディタに表示されるように、Widthを 600ピクセル、Heightを 400ピ クセルに設定します。
|
11. |
Departmentブロックの高さを低くします。
|
12. |
StructureペインのEmployees 表で右クリックし、コンテキストから「 Surround With」を選択します。 Surround Withダイアログで、「 Panel Collection」を選択します。 「 OK」をクリックします。
|
13. |
ユーザーが部門間を移動した場合にemployeesセクションがリフレッシュされるようにします。ユーザーがこれらのボタンをクリッ クした場合に、Partial Page Rendereingトリガーが作動するように設定します。 employees表を選択します。 プロパティ・インスペクタで、「 Behavior」→「 PartialTriggers」 プロパティから「 Edit」をクリックします(Editボタンはフィールドの右端にあります)。
|
14. |
Edit Propertyダイアログで「 facet (first)」→「 panelFormLayout - Departments」→「 facet (footer)」→「 panelGroupLayout」 のように展開し、ナビゲーション・ボタンを表示させます。
|
15. |
「 shuttle」ボタンを使用して、4つのボタンをSelectedリストに追加します。 「 OK」をクリックします。これで、ユーザーがこれらの4つ のボタンをクリックした場合、表示された部門内でemployeesリストがリフレッシュされ、従業員が表示されるようになりました。
|
16. |
コンポーネント・パレットのCommon Componentsで「 Panel Menu Bar」 コンポーネントを選択し、ページの Facet Topタグにドロップします。
|
17. |
「 Menu」コンポーネントをクリックし、 Menu Bar内 にドラッグ・アンド・ドロップします。
|
18. |
プロパティ・インスペクタの Textをmenu 1から Optionsに 変更します。
|
19. |
「 Behavior」タブをクリックして、 Detachableフィー ルドを trueに設定します。
|
20. |
Structureペインで、「 af:menu」タグを右クリックし、コンテキスト・メニューから 「 Insert Inside af:menu」→「 Menu Item」を選択 します。
|
21. |
プロパティ・インスペクタの Commonタブで、 Textを Queryに 変更し、 Actionのドロップ・ダウン・リストから「 query」を選択しま す。
|
22. | Save Allアイコン「
|
次に、ADF Facesを使用して、Employeesを編集する問合せページを構築します。
1. |
Page Flowダイアグラム(faces-config.xmlタブをクリック)に切り替え、 「 query」アイコンをダブルクリックして、ページ・ウィザードを起動します。
|
2. |
ファイル名を query.jspxに設定し、「 Create as XML Document」を選択します。 「 OK」をクリックします。
|
3. |
新しいDesignページが開きます。 Data Controlsの HRFacadeLocalノー ドで、「 getEmployeesFindByName(String)」ノードを選択して、ページにドロップしま す。 ポップアップ・メニューから、「 Parameters」→「 ADF Parameter Form」を選択します。 |
4. |
Edit Form Fieldsで「 OK」をクリックし、提案されたフィールドを受け入れます。
|
5. |
Edit Action Bindingダイアログの「 OK」をクリックします。ページ・デザイン は次のように表示されます。 . |
6. |
Data Controlsで「 getEmployeesFindByName」ノードを展開し、 「 Employees」ノードを選択します。 次に、 Parameter Formの 下のページにドロップします。 ポップアップ・メニューから、「 Forms」→「 ADF Form」 を選択します。
|
7. |
Edit Form Fieldsで、両方のチェック・ボックス( Include Navigation Controlsと Include Submit Button)を選択します。 「 OK」をクリックします。
|
8. |
問合せページのデザインは次のように表示されます。 |
9. |
このページは更新可能に設定する必要があります。そのため、Data Controlsペインで「 mergeEmployees(Employees)」 メソッドを選択して、 Submitボタンにドロップします。 Edit Action Bindingダイアログの Parametersセクションで、 Valueフィー ルドの下向き矢印をクリックし、「 Show EL Expression Builder」を選択します。
|
10. |
Variablesダイアログで、「 ADF Bindings」→「 Bindings」 →「 queryEmployeesFindByNameIterator」→「 currentRow」 を展開し、「 dataProvider」を選択します。それぞれのノードを選択すると、エディタがウィンドウの上部に ある式にそれらを追加します。 「 OK」をクリックし、もう一度「 OK」をクリックします。
|
11. |
Confirm Component Rebindingダイアログで「 OK」をクリックします。 |
12. |
問合せページのデザインに戻って、「 mergeEmployees」ボタンを選択します。
|
13. |
プロパティ・インスペクタのCommonタブで、 Text値を Saveに 設定します。次に、Button Actionセクションで Actionをドロップ・ダウン・リストから browseに 設定します。
|
14. |
Save Allアイコン「
|
15. |
ページは次のようになります。 |
1. |
ページをテストするため、ページ・フロー・ダイアグラムに戻ります。「 browse」ページ・アイ コンを右クリックし、コンテキスト・メニューから「 Run」を選択します。 |
2. |
ページがデフォルトのブラウザにロードされ、次のように表示されます。 |
3. |
「 Next」ボタンをクリックして、リストから複数の従業員が存在する部門を検索します。次に、 firstName列 をクリックし、「 up/down」矢印アイコンを使用して、この条件の昇順/降順のソートを実行します。
|
4. |
lastName列のヘッダーを選択し、 firstName列 の右隣に移動させます。
|
5. |
列のヘッダーを選択し、次の順番で並べ替えます。 firstName、 lastName、 email、 salary、 hireDate、 employeeId、 commissionPct
|
6. |
ページの左上の「 Options」→「 Query」をクリック して、メニューをページの別の位置へ移動します。次に、「 Query」ボタンをクリックします。
|
7. |
ブラウザで問合せページが開きます。 queryEmployeesFindByName_p_nameで、 名前または名前の一部( A%など)を入力し、「 Query」ボタンをクリックしま す。
|
8. |
問合せで1つ以上のレコードが取得される場合、ナビゲーション・ボタンを試してみます。
|
9. |
hireDateフィールドの右側にある「 Calendar」 アイコンをクリックして、カレンダー・ポップアップ・ウィンドウから新しい入社日を選択します。
|
10. |
「 Save」ボタンをクリックすると、データベースの変更がコミットされ、ブラウザ・ページに戻り ます。
|
11. |
これでOBEは完了です。ブラウザ・ウィンドウを閉じます。 |
|
データベース接続の作成 |
|
EJB 3.0およびEJBダイアグラムを使用したデータ・モデルの構築 |
|
ページ・フローの作成 |
|
マスター/ディテールJSFページの作成 |
|
問合せおよび編集ページの作成 |
|
JSFページの実行 |